Сообщение
ndStar » 11 ноя 2005, 14:23
Проблема с первым Append решилась. Похоже дело было не в Cnt, а в значениях других полей (часть действительно содержала некорректное значение). После исправления все вставляется прекрасно.
Но появился следующий затык. Есть 2 таблицы Ch (счета) и Zak (заказы), связанные в клиенте через Master-Datail, а на сервере определен внешний ключ ZakCh
Ch.Cnt = Zak.Chet
(не уникальный, т.к. на один счет может быть несколько заказов)
У таблички Zak ПК определен по первым 2м полям Chet и Zak.
После вставки записи в Ch, хочется вставить соотв. запись в Zak. На момент записи значение Ch.Cnt=1001, а Zak.Chet=0, это наверное правильно, т.к. записей в Zak еще нет. Пытаемся
Zak.Last; j:=ZakZak.AsInteger+1; // j=1
Zak.AppendRecord([ChCnt.AsInteger,j,sg,sz,tp,'y',zp,zec,kl,1,tf,r,zei,rbs,'',pz,tn,znes,Now,Dgen.GenFl.AsInteger,TipnmTad.AsInteger,0]);
Выдает ошибку
raised exception class EFIBInterBaseError with message 'Zak.Insert.Query: Unsucsessfull execution caused by system error that does not preclude sucsessfull execution of subsequent statments,lock conflict on nowait transactions.
violation of FOREIGN KEY constraint "ZakCh" on table "Zak".
Понимаю, что что-то неправильно делаю. Но вот что? Буду очень благодарна за помощь.
С уважением, Надежда