Case-технологии - статьи


         

При генерации будет создан следующий


При генерации будет создан следующий триггер

create trigger tD_Отдел after DELETE on Отдел for each row
-- ERwin Builtin Wed Oct 15 17:06:44 2003
-- DELETE trigger on Отдел
declare numrows INTEGER;
begin
/* ERwin Builtin Wed Oct 15 17:06:44 2003 */
/* Отдел R/2 Сотрудник ON PARENT DELETE RESTRICT */
select count(*) into numrows
from Сотрудник
where
Сотрудник.ид_отд = :old.ид_отд;
if (numrows > 0)
then
raise_application_error(
-20001,
'Cannot DELETE Отдел because Сотрудник exists.'
);
end if;
end;

Помимо использования стандартных шаблонов пользователь может создать свой собственный шаблон. Приведем пример создания пользовательского шаблона триггера.

create trigger %TriggerName
%Fire %Actions(" or ")
on %TableName
%RefClause
%Scope
/* ERwin Builtin %Datetime */
/* default body for %TriggerName */
begin
Insert into Security (OldName, NewName, UserUpdate, UpdateDate)
values (:old1.CustomerName, :new1.CustomerName, User, Sysdate);
end;
/

В результате использования этой макрокоманды любое изменение в таблице Customer, будет фиксироваться в таблице Security, а именно прежнее значение имени, новое значение, дата изменения и имя пользователя, производившего изменения. На этапе генерации кода SQL эта макрокоманда будет выглядеть следующим образом.

create trigger SecurWrite
BEFORE UPDATE OF
CustomerName
on CUSTOMER
REFERENCING OLD AS old1 NEW AS new1
for each row
/* ERwin Builtin %Datetime */
/* default body for %TriggerName */
begin
Insert into Security (OldName, NewName, UserUpdate, UpdateDate)
values (:old1.CustomerName, ;new1.CustomerName, User, Sysdate);
end;
/

Перенос логики приложения с клиентской части на серверную часть предоставляет целый ряд преимуществ, среди которых: снижение стоимости сопровождения системы, увеличение уровня безопасности приложения, уменьшение сетевого трафика. Основным средством реализации данного подхода является использование хранимых процедур. Для написания хранимых процедур в ERwin DM можно также использовать язык макрокоманд.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий