![]() |
|
|
#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 запросе Последний раз редактировалось Yurk@, 14.08.2013 в 12:39. |
| Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
Redddd (16.08.2013)
| ||