Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2013, 08:09   #1
WishHunter
 
Регистрация: 19.02.2013
Сообщений: 6
Печаль перенос из одной таблицы БД в другую

У меня есть база данных с двумя таблицами, помещенными на форму с помощью DBgrid, подскажите как организовать, что бы при нажатии кнопки выделенная пользователем строчка из первой таблицы переносилась во вторую, дополняясь столбцами с датой и временем?
WishHunter вне форума Ответить с цитированием
Старый 19.02.2013, 09:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для этого нужно знать какие компоненты используются и структуру таблиц.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2013, 09:40   #3
WishHunter
 
Регистрация: 19.02.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Для этого нужно знать какие компоненты используются и структуру таблиц.
Ну для отображения таблицы используется компонент DBGrid Для внедрения таблицы БД я создал DataModule с компонентами TTable и DataSource, ну это логично, и вот мне надо что бы при нажатии кнопки BitBtn выделенная строчка перенеслась во вторую таблицу. Структура таблицы(если я правильно понял что это):
0 столбец: ID, Autoinkrement ключевое поле
1 столбец: N Auto, Alpha, вторичный ключ
2 столбец: F.I.O , Alpha
3 столбец: Marka, Alpha
4 столбец: Summa , Money
5 столбец: predoplata, Logical

вторая таблица все тоже самое только:
6 столбец: Data, Alpha
7 столбец: Time, Alpha
WishHunter вне форума Ответить с цитированием
Старый 19.02.2013, 12:25   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Понял. С потолка так:
Код:
var i:integer;
begin
 table2.insert;
 for i:=0 to table1.FieldsCount-1 do begin
  table2.FieldByName(table1.fields[i].FieldName).value:=table1.fields[i].value;
 end;
  table2.FieldByName('Data').value:=dateToStr(date);
  table2.FieldByName('Time').value:=timeToStr(time);
 table2.post;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.02.2013, 09:20   #5
WishHunter
 
Регистрация: 19.02.2013
Сообщений: 6
По умолчанию

Все,вроде работает, спасибо огромное!!!

Последний раз редактировалось WishHunter; 20.02.2013 в 10:55.
WishHunter вне форума Ответить с цитированием
Старый 20.02.2013, 16:34   #6
WishHunter
 
Регистрация: 19.02.2013
Сообщений: 6
Смущение

Код:
for i:=0 to table1.Fields.Count-1 do begin
на эту строчку ругается:

[Warning] Unit1.pas(74): For loop control variable must be simple local variable
WishHunter вне форума Ответить с цитированием
Старый 20.02.2013, 16:44   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
[Warning] Unit1.pas(74): For loop control variable must be simple local variable
во-первых, не ругается, а ПРЕДУПРЕЖДАЕТ (warning == предупреждение)

во-вторых, текст сообщения перевести на русский не пробовали?

переменная i должная быть простой ЛОКАЛЬНОЙ переменной.

опишите var i : integer; в той процедуре, где написан данный код, и данное предупреждение пропадёт...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2013, 16:49   #8
WishHunter
 
Регистрация: 19.02.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, не ругается, а ПРЕДУПРЕЖДАЕТ (warning == предупреждение)

во-вторых, текст сообщения перевести на русский не пробовали?

переменная i должная быть простой ЛОКАЛЬНОЙ переменной.

опишите var i : integer; в той процедуре, где написан данный код, и данное предупреждение пропадёт...
Да, извиняюсь,полазил нашел проблему,не успел пост исправитьНо проблема теперь в другом, выдает:


Project Project1.exe raised exception class EDatabaseError with message 'table2: Field 'N. Auto' not found'. Process stopped. Use Step or Run to continue.

Вот теперь с этим столкнулся,хотя поля в обоих таблицах идентичны и стоят в том же порядке.

Последний раз редактировалось WishHunter; 20.02.2013 в 17:00.
WishHunter вне форума Ответить с цитированием
Старый 20.02.2013, 17:06   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и кто Вас учит называть поля с пробелами (а то и вообще, по русски)??!
если СУБД MS Access попробуйте взять имя поля в квадратные скобки:
xxxx.FieldByName('[N auto]').value....;

а вообще, я бы воспользовался SQL запросом и в нём присвоил поля нормальные алиасы!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.02.2013, 08:15   #10
WishHunter
 
Регистрация: 19.02.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и кто Вас учит называть поля с пробелами (а то и вообще, по русски)??!
если СУБД MS Access попробуйте взять имя поля в квадратные скобки:
xxxx.FieldByName('[N auto]').value....;

а вообще, я бы воспользовался SQL запросом и в нём присвоил поля нормальные алиасы!
Спасибо огромное! Реально тупанул в 1 базе пробел поставил, а во второй норм, без пробела,вот и ругался

СУБД Paradox 7 кстати.

Да,спасибо за совет, нашел материал, буду SQL запросы изучать
WishHunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
Перенос данных из одной таблицы в другую в Delphi PinGsama БД в Delphi 4 30.05.2011 04:52
Перенос данных из одной таблицы в другую D.O.G БД в Delphi 3 07.10.2010 12:23
перенос данных из одной таблицы в другую peq Microsoft Office Excel 5 28.08.2010 08:16
Перенос данных из одной таблицы в другую в Excel Vindima Помощь студентам 2 11.04.2010 19:54