Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: 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 вся ветка

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
1-1127451876
Геннадий
2005-09-23 09:04
2005.10.16
I/O error 32


14-1127454959
Тульский
2005-09-23 09:55
2005.10.16
Реклама ПО


14-1127807545
Андрей Жук
2005-09-27 11:52
2005.10.16
Delphi. Готовые алгоритмы


2-1127120457
Новичок1
2005-09-19 13:00
2005.10.16
Народ посоветуйте как сделать остановку программы


6-1111927099
Nes
2005-03-27 16:38
2005.10.16
IdUDPClient & IdUDPServer ==> Вешаться или подскажите?