![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день!
Есть код: Код:
procedure TForm1.btn15Click(Sender: TObject); begin if (cbb2.ItemIndex=(-1)) or (edt2.text='') then MessageDlg('Çàïîëíåíû íå âñå ïîëÿ!',mtError, [mbOK], 0) else begin if edt1.text<>'' then begin dm.ADOtab1.Append; dm.ADOtab1['name_kat']:=edt1.Text; dm.ADOtab1.Post; DM.ADOtab1.Refresh; end; if not DM.ADOtab3.Locate('name_tip',edt6.Text,[]) then begin DM.ADOtab3.Append; dm.ADOtab3['name_tip']:=edt6.Text; dm.ADOtab3.Post; dm.ADOtab3.Refresh; end; DM.ADOtab2.Append; if cbb2.ItemIndex>(-1) then DM.ADOtab2['name_kat']:=cbb2.text else dm.ADOtab2['name_kat']:=edt1.Text; DM.ADOtab2['name_kn']:=edt2.text; DM.ADOtab2['avtor']:=edt3.text; DM.ADOtab2['god']:=edt4.text; dm.ADOtab2['name_file']:=edt5.text; dm.ADOtab2['tip_file']:=edt6.text; dm.ADOtab2['data']:=date(); dm.ADOtab2.Post; end; end; При добавлении новой записи (если создавать новую запись в adotab1['name_kat']) вылетает ошибка (во вложении). И это странно, т.к. при добавлении новой записи в adotab3['name_tip'] все нормально работает и сохраняет. В tab1 'name_kat' - ключ, в tab3 'name_tip' - ключ. Связаны с tab2 как один ко многим. Ошибка вылетает на строке dm.ADOtab2.Post; Для полной ясности во вложении проект и бд. Пароль "2014". |
#2
|
||||
|
||||
![]() Большой совет: не пользуйся этим дермищем, используй ADOCommand с параметризованным запросом "insert into tablename(field1, field2) values(:value1, :value2)".
Ошибка, судя по всему, из-за нарушения констрейнта, ссылка на несуществующую запись. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
![]() Цитата:
В том то и дело, что запись создается в первой таблице.. Но сохранять запись во второй не хочет. В то же время при новой записи в третей таблице - все работает. Ладно, попробую разобраться в adocommand. |
#4
|
||||
|
||||
![]() Транзакция на тот момент завершена?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
![]() Какая-то хрень.. Методом тыка пришел к такому изменению:
Код:
DM.ADOtab2.Append; dm.ADOtab2['name_kat']:=cbb2.Items.Strings[0]; DM.ADOtab2['name_kn']:=edt2.text; DM.ADOtab2['avtor']:=edt3.text; DM.ADOtab2['god']:=edt4.text; dm.ADOtab2['name_file']:=edt5.text; dm.ADOtab2['tip_file']:=edt6.text; dm.ADOtab2['data']:=date(); dm.ADOtab2.Post; dm.ADOtab2.Edit; dm.ADOtab2['name_kat']:=edt1.Text; dm.ADOtab2.Post; |