![]() |
|
#1
|
|||
|
|||
![]() Итак компоненты FBPlus
А именно pFIBDataSet1 Работаем с таблицей, где есть автоинкрементное поле. В свойстве SelectSQL есть методы Insert/Update/Delete. При вставке записи используется следующий запрос: Код:
INSERT INTO FIRMALL( FIRMALL, COUNTRY, NAME, DERW, CODE ) VALUES( GEN_ID(GEN_FIRMALL_ID, 1), :COUNTRY, :NAME, :DERW, :CODE ) Если вставлять програмно следующим запросом все работает: Код:
DM.DataModule1.pFIBDataSet1.SQLs.SelectSQL.Add('INSERT INTO FIRMALL (FIRMALL,COUNTRY,NAME,DERW,CODE) VALUES (GEN_ID(GEN_FIRMALL_ID, 1),:param1,:param2,:param3,:param4);'); Если вставлять записи через грид первым способом- ошибка. Не пойму почему. |
#2
|
||||
|
||||
![]() v.1
а не проще ли сделать это по нормальному ч\з тригер Код:
IF (NEW.FIRMALL IS NULL) THEN NEW.FIRMALL = GEN_ID(GEN_FIRMALL_ID, 1); Код:
INSERT INTO FIRMALL(COUNTRY, NAME, DERW, CODE) VALUES(:COUNTRY, :NAME, :DERW, :CODE) v.2 а еще в pFIBDataSet1.AutoUpdateOptions есть спец свойства для работы с генераторами. Ими тоже можно играться как угодно. но никак не извращаться с вычислением генератора напрямую в INSERT запросе Поживу - увижу, Доживу - узнаю, Выживу - учту. ![]() [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 14.08.2013 в 12:39. |
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
Redddd (16.08.2013)
|