Вниз
Скачать: CL | DM;

Вставка записи в таблицу   Найти похожие ветки 

← →
oradb   (2005-09-05 13:33) [0]

Есть таблица и генератор. Есть триггер на таблице BEFORE INSERT:


AS
begin
 NEW.id = GEN_ID(productgroupgen, 1);
end


 Если вставлять в таблицу запись через Query (insert into table(name) values("test")) - то все проходит нормально.  Если я вставляю запись с помощью Table:


 table.Active:=true;
 table.Insert;
 table.FieldByName("name").AsString:=NameEdit.Text;
 table.Post;


 то появляется сообщение о том, что не задано ключевое поле(id), то есть, такое ощущение, что не срабатывает триггер.

 Почему так происходит и как этого избежать ?


← →
Zacho ©   (2005-09-05 14:07) [1]

Читать http://www.ibase.ru/devinfo/generator.htm


← →
Anatoly Podgoretsky ©   (2005-09-05 14:21) [2]

Так оно и есть, триггера срабатываю после проверки ограничений, а у тебя явно обязательное поле NOT NULL
А так ка ИБ не поддерживает автоинкриментных полей, то Дельфи не знает, что это автоинкриментное поле и пытается послать туда NULL.

А что тебя довело до жизни такой, как использование Table, возможно еще и БДЕ


← →
oradb   (2005-09-05 14:28) [3]

Прошу прощения за неточность - использую TIBTable.
 Пока вижу такое решение - отдельной query получаю идентификатор, а потом использую TIBTable и полученный идентификатор.


← →
Os   (2005-09-05 14:29) [4]

AS
BEGIN
 IF (NEW.ID IS NULL) THEN
   NEW.ID = GEN_ID(productgroupgen,1);
END


← →
Zacho ©   (2005-09-05 14:34) [5]

Anatoly Podgoretsky ©   (05.09.05 14:21) [2]

Неверно. Триггер BEFORE срабатывает перед проверкой на NULL. А сообщение об ошибке выдаёт не IB, а Дельфи, поскольку у соответствующего поля Required:=true;


← →
Os   (2005-09-05 14:44) [6]

Тригер привязан к таблице в базе и срабатывает перед вставкой данных



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
1-1127802387
Jolik
2005-09-27 10:26
2005.10.16
Нашел в сети апдейт на Delphi7 - а он гад...


4-1124229187
SuperMatser
2005-08-17 01:53
2005.10.16
Проблема с цветом!!!!!!!!!!!!!!! WinAPi


1-1127391443
nikolas
2005-09-22 16:17
2005.10.16
Удаление комментариев из исходников


14-1127400606
Джо
2005-09-22 18:50
2005.10.16
Мирная тема.


2-1125919611
JTAG
2005-09-05 15:26
2005.10.16
Помогите кто работал с функцией ShellExecute




   Наверх