Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с примером триггера [D6, IB6.x]


Senka ©   (2002-11-28 11:20:00) 

Люди добрые....
Как сделать так чтобы например при добавлении новой записи в таблицу поле первичного ключа автоматически заносилось увеличиваясь на единицу.
Вот пример но он чегото не работает:

CREATE GENERATOR "TEHNIKA_GEN";

SET TERM ^ ;
CREATE TRIGGER "SETTEHN" FOR "TEHNIKA"
ACTIVE BEFORE INSERT POSITION 0
as
begin
new.N_TEH = gen_ID(TEHNIKA_Gen, 1);
end ^
COMMIT WORK ^
SET TERM ;^

Спасиба.


Wolf226   (2002-11-29 11:09:00) [1]

Тригер правильный, похоже проблема в другом.
Например в самой программе.
Поле первичного ключа not null.
поэтому Delphi по умолчанию ставит Required:=true;
И если ты его не заполнишь, то он не выполнит Post
Поэтому надо явно определить поля. И поставить Required:=false
для поля N_TEH.


Alexandr   (2002-11-29 07:44:00) [2]

да не слушай ты тут всякий бред.
У тебя же откомпилировался триггер.

А с чего ты взял, что не заботает?


Senka   (2002-11-28 17:34:00) [3]

Если сделать так

new.N_TEH = gen_ID(TEHNIKA_Gen, 1)^

то ерор вылазит и не компилит.


Andriano   (2002-11-28 14:22:00) [4]

new.N_TEH = gen_ID(TEHNIKA_Gen, 1) ^


Andriano   (2002-11-28 14:21:00) [5]

new.N_TEH = gen_ID(TEHNIKA_Gen, 1) ^


Alexandr   (2002-11-28 13:51:00) [6]

да правильный триггер. Должен работать.
Другое дело, что ты у себя в дадасете значения не видишь... Пока запрос не переоткроешь. Так это уже другая проблема.


Senka   (2002-11-28 13:43:00) [7]

Дело не в кавычках. Их уже генерит сам интербейз я взял код уже скомпилированный.
А пример подобный у кого нибудь есть. И что это :new.N -поставить двоеточие перед new.


Alexandr   (2002-11-28 11:30:00) [8]

нет. Это от третьего диалекта.
Стандарт SQL-92 в отношении кавычек почитай.


stone   (2002-11-28 11:23:00) [9]

Давно уже не работал с интербэйзом, но по-моему тут кавычки везде лишние.


Johnmen   (2002-11-28 11:21:00) [10]

:new.N


Наверх

Титульная страница Поиск, карта сайта Написать письмо