Триггеры

Триггер INSERT определяет действия, которые будут выполняться после добавления в таблицу новой записи.

Триггер UPDATE — то же самое, только после изменения записи.
Триггер DELETE определяет действия, которые будут выполняться после удаления записи из таблицы.

На вкладке Table окна Table Designer имеется группа Triggers (), в которой расположены три поля ввода: Insert Trigger, Update Trigger, Delete Trigger.

Вот в эти-то поля и заносится вызов хранимой процедуры, логическое выражение или операторы сравнения — в общем, любое допустимое выражение. И если результатом вычисления данного выражение будет .Т. (True) — все в порядке! В противном случае нашего уважаемого пользователя ждет сообщение об ошибке.
Вызов триггеров происходит в следующих случаях:

• триггер UPDATE — при любом изменении значения поля, а также при выполнении команд REPLACE, REPLACE FROM ARRAY, UPDATE-SQL, GATHER;
• триггер DELETE — при установке на записи метки на удаление в режиме просмотра или/и при выполнении команды DELETE;
• триггер INSRET — при вводе новой записи в режимах BROWSE ИЛИ EDIT, a также при выполнении команд APPEND FROM, APPEND FROM ARRAY, APPEND BLANK, IMPORT, RECALL, INSERT-SQL и при снятии отметки об удалении записи в режиме просмотра.

Но при использовании триггеров имеются и ограничения: если ты пометил запись для удаления, а потом вдруг начал ее же модифицировать — триггеры вызываться не будут.

Убрать триггер из таблицы проще простого — нужно очистить соответствующее поле ввода или использовать команду DELETE TRIGGER.

Как все это претворить в жизнь? Сначала о хранимой процедуре: открой окно конструктора таблиц (Table Designer) с таблицей countries и в поле Default value (Значение по умолчанию) введи следующее выражение:

1
mylastid ("countries").

А вот теперь попробуй ввести несколько значений. Ну как, получается?, А ты как думал!

Эта же функция может успешно применяться и в других таблицах, например в таблице cities. В поле ввода Default value для этой таблицы следует указать myiastid (”cities”) и вперед! А что у нас в таблице lastid?

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100