Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Customer






Опции Table и Row (поддерживается ORACLE 7.x, SQLBaseV6, Watcor V4 и AS/400 V3) показывают, каким образом будет выполняться триггер. При генерации в текст триггера будут соответственно включены предложе­ния " FOR EACH TABLE" или " FOR EACH ROW".

Old - ссылка на прежнее значение при обновлении поля, New - ссылка на новое значение при обновлении таблицы. В тексте шаблона триггер; используется макрос %RefClause, при генерации текста триггера по шабло­ну включается предложение REFERENCES. В примере для нового значе­ния установлено имя " new 1", для старого - " old 1".

В списке в нижней части диалога показываются имена родительской таблицы (Parent), дочерней таблицы (Child), имя связи (Verb Phrase) и пра­вило ссылочной целостности (Integrity Rule) в случае, если редактируется триггер ссылочной целостности.

В окне Template Code можно ввести код шаблона триггера. Код шабло­на триггера, соответствующий бизнес-правилу рассматриваемого примера (создан на основе шаблона триггера ссылочной целостности), приведен ниже:

create trigger %TriggerName

%Fire %Actions(" or")

on %TableName

%RefClause

%Scope

/*ER-win Buillin %Daletime * /

/* default body for % Trigger Name */

begin

Insert into Security (OldName.NewName, UserUpdate, UpdateDate)

values (; oid1.CustomerName,: new1.CustomerNarne. User. Sysdate);

end;

/

В окне Expanded Codeотображается код триггера (на языке выбранного сервера, в примере - Oracle 7.2), автоматически генерируемого по шаблону:

create trigger SecurWrite

BEFORE UPDATE OF

CjstomerName

on CUSTOMER

REFERENCING OLD AS oldl NEW AS new 1

for each row

/* ERwin Builtin Tue Jan 26 21: 24: 371999*/

/*default body for SecurWrile*/

begin

Insert into Security (OldName.NewName. UserUpdate, UpclaleDate)

values (: oldi Cus! omerName,: new1.CustomerName. User, Sysdate);

end;

/

Ниже приведен текст SQL-команд и результат их выполнения (выполнены при помощи Oracle SQL*Plus), иллюстрирующих работу триг­гера.

SQL> insert into CUSTOMER (CustomerlD, CustometName) values (20, 'lvanov');

1 tow created.

SQL update CUSTOMER set Cus! omeiName='Pet[ov' where CustomerlD=20;

1 row updated.

SOL select* from SECURITY;

UPDATEDATE OLDHAME NEWNAME USERUPDATE

-----------------------------------------------------------------------------------

27-JAN-99 Ivanov Petrov SCOTT

Любое изменение имени клиента в таблице CUSTOMER фиксируется в таблице SECURITY, причем регистрируется прежнее значение имени, новое значение, дата изменения и имя пользователя, производившего изменения.

Кнопка Toolbox диалога Table Trigger Editor вызывает редактор ER-win Trigger Toolbox, который значительно облетает создание текста шаблона триггера (рис. 2.81).

 

Рис. 2.81. Диалог ER-win Template Toolbox

Template Toolbox содержит три секции: слева расположены списки, со­держащие макросы для таблиц, связей, колонок, ограничений и макросы общего назначения. Все макросы начинаются с символа %. Список макро­сов приведен в приложении. Если выделить макрос в каком-либо списке, в окне Description отобразится синтаксис макроса и пример его использо­вания для связи между таблицами, показанными в правой секции редакто­ра. Таблицы и связи, показываемые в правой части редактора, взяты из примера, содержащегося в файле MOV1ES.ER1, который находится в ди­ректории Models.

Для включения макроса в текст шаблона достаточно дважды щелкнуть левой клавишей мыши по соответствующему макросу в одном из списков. Макрос включается в текст шаблона в окне Template Code диалога Table Trigger Editor.

Для изменения шаблона триггера ссылочной целостности (переопреде­ление типа ссылочной целостности) служит редактор Trigger Template Editor (рис. 2.82).

 

 

Рис. 2.82. Диалог Trigger Template Editor

Для изменения шаблона нужно выделить тип триггера в списке, который находится в верхней части редактора, после чего щелкнуть по кнопке Detach ->, чтобы отсоединить тот шаблон, который связан с выбранным триггером. В списке Built-in Template или User Override нужно выбрать шаблон, который следует связать с выбранным триггером, Выделив имя шаблона, нужно щелкнуть по кнопке Attach над списком. ER-win свяжет выбранный шаблон с триггером и покажет его текст в окне Template Соde. Для отмены связывания следует щелкнуть по кнопке < - Rebind. Для создания нового собственного шаблона надо задать его имя в окне Template Name и с помощью Trigger Toolbox (кнопка Trigger Toolbox») создан ickct шаблона триггера. Кнопка Add добавит новый шаблон в список User Override.

Для переопределения шаблона триггера для связи следует правой кноп­кой мыши щелкнуть по связи и во всплывающем меню выбрать пункт Relationship Template Editor. Появляется диалог Relationship Template Editor (рис, 2.83). Создание шаблона триггера и связывание его с определенным правилом ссылочной целостности аналогично созданию и связыванию шаблона в диалоге Trigger Template Editor.

 

 

Рис. 2.83. Диалог Relationship Template Editor

 

Для создания и редактирования хранимых процедур ER-win располагает специальными редакторами, аналогичными редакторам, используемым для создания триггеров. В отличие от триггера хранимая процедура не выполняется в ответ на какое-то событие, а вызывается из другой программы которая передает на сервер имя процедуры. Хранимая процедура боле гибка, чем триггер, поскольку может вызывать другие хранимые процедуры Ей можно передавать параметры, и она может возвращать параметры, значения и сообщения.

ER-win не имеет встроенных шаблонов хранимых процедур, которые можно было бы использовать как основу при создании новой хранимо процедуры. Для создания или редактирования хранимой процедуры следует щелкнуть правой кнопкой мыши по таблице и выбрать в каскадном mchi пункт Table Editor/Stored Procedure. Появляется закладка Stored Procedure диалога Table Editor (рис. 2.84).

 

Рис. 2.84. Закладка Stored Procedure диалога Table Editor

 

Список Attached SP Template содержит имена процедур, связанных с редактируемой таблицей. Список Unattached SP Template содержит имена процедур, которые могут быть связаны с таблицей. Кнопки < -Attach и Detach-> служат для связывания и открепления процедуры от таблицы.

Кнопка SP Template вызывает диалог, в котором можно просмотреть и отредактировать код процедуры, включающий SQL-команды и макросы ER-win. Код процедуры показывается в окне SP Expansion, код шаблона - в окне SP Template. На рис. 2.84 в окне SP Template показан код шаблона процедуры с одним возвращаемым параметром, содержащим количество строк текущей таблицы (синтаксис Oracle 7.2).

В окне SP Template можно непосредственно вводить выражения SQL (при условии соблюдения синтаксиса выбранной СУБД). В редакторе SP Template для внесения в текст шаблона макросов можно воспользоваться Редактором ER-win Template Toolbox.

ER-win позволяет снизывать хранимые процедуры не только с отдельными таблицами, но и со всей моделью. Например, это может быть хранимая процедура, которая выполняет административную функцию.

Для создания хранимой процедуры на уровне схемы или для связыванияхранимой процедуры с моделью нужно выбрить пункт меню Server/Schema Property. Вызывается редактор Schema Properties (рис. 2.85).

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.