|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Добавление данных в таблицу из других таблиц
Есть такая задача:
3 таблицы (dbgrid1,dbgrid2,dbgrid3) Пользователь выделяет в dbgrid1 и dbgrid3 необходимые ему записи (по одной в каждой таблице) и при нажатии на кнопку определённое поле например id_dbgrid1 и id_dbgrid3 попадали в новую запись (в определённые поля) dbgrid2 и сохранялись в БД на firebirde. Покажите пример хотя бы... Заранее спасибо! |
#2
|
||||
|
||||
вот как-то так
Код:
Grid2.DataSource.DataSet.Edit; Grid2.DataSource.DataSet.FieldByName('pole1').Value := Grid1.DataSource.DataSet.FieldByName('id').Value; Grid2.DataSource.DataSet.FieldByName('pole3').Value := Grid3.DataSource.DataSet.FieldByName('id').Value; Grid2.DataSource.DataSet.Post; и да, с данными работает Table, Query, DataSet, а DBGrid только отображает результат их работы Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 23.06.2013 в 10:46. |
#3
|
||||
|
||||
О ужас.
Заведите себе хорошую привычку работать с базой через запросы, а не через аппенды и посты. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#4
|
|||
|
|||
Спасибо!
Вот у меня что получилось: Код:
procedure TNew_office_contact.Button1Click(Sender: TObject); begin with DataModule1.IBQuery6 do begin SQL.Text:= 'insert into office_contacts (oc_o_id, oc_cntt_id, oc_contact) values ( :oc_o_id, :oc_cntt_id, :oc_contact)'; ParamByName('oc_o_id').AsString:=DataModule1.IBQuery1DB1.FieldByName('O_ID').AsString; ParamByName('oc_cntt_id').AsString:= vartostr(DBLookupComboBox1.KeyValue); ParamByName('oc_contact').AsString:=Edit1.Text; Transaction.StartTransaction; ExecSQL; Transaction.Commit; Transaction.Active:=false end; DataModule1.IBQuery6.Close; DataModule1.IBQuery6.Open; end; Project Project1.exe raised exemption class EIBInterBaseError with message 'violation of PRIMARY or UNIQUE KEY constraint "PK_OFFICE_CONTACTS' on table "OFFICE_CONTACTS". Process stopped и бла бла бла... Последний раз редактировалось sAVe, 03.07.2013 в 09:35. |
#5
|
|||
|
|||
блин, дурацкие смайлы, как их отключить?
разобрался) Последний раз редактировалось sAVe, 03.07.2013 в 09:35. |
#6
|
|||
|
|||
А вот это зачем?
DataModule1.IBQuery6.Close; DataModule1.IBQuery6.Open; |
Этот пользователь сказал Спасибо icWasya за это полезное сообщение: | ||
sAVe (03.07.2013)
|