Главная страница
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.48 MB
Время: 0.069 c
9-1118064410
grouzd[E]v
2005-06-06 17:26
2005.10.16
OpenGL - Perspective feat. gluUnProject


14-1126879521
TohaNik
2005-09-16 18:05
2005.10.16
Лукашенко резко критикует деятельность ООН и политику США


1-1127723465
mefisto
2005-09-26 12:31
2005.10.16
Как встроить в свое приложение компилятор паскаля.


2-1126692764
Маклауд
2005-09-14 14:12
2005.10.16
Где arctg можно взять?


3-1125500472
strela
2005-08-31 19:01
2005.10.16
работа с компонентом EhLib