Чтение онлайн

на главную - закладки

Жанры

BPwin и Erwin. CASE-средства для разработки информационных систем
Шрифт:

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

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

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;

/

В

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

create trigger SecurWrite BEFORE UPDATE OF

CustomerName

on CUSTOMER

REFERENCING OLD AS old1 NEW AS new1

for each row

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

/* default body for SecurWrite 7

begin

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

values (:old1.CustomerName,:new1.CustomerName, User, Sysdate);

end;

/

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

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

1 row created.

SQL> update CUSTOMER set CuslomerName='Petrov' where CustomerlD=20;

1 row updated.

SQL> select* from SECURITY;

UPDATEDATE OLDNAME NEWNAME USERUPDATE

–––––––––––––––––––––––––––––––––––––––––––––––––––––––

27-JAN-99 Ivanov Petrov SCOTT

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

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

Рис. 2.81. Диалог ERwin Template Toolbox

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

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

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

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

Для

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

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

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

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

ERwin не имеет встроенных шаблонов хранимых процедур, которые можно было бы использовать как основу при создании новой хранимой процедуры. Для создания или редактирования хранимой процедуры следует щелкнуть правой кнопкой мыши по таблице и выбрать в каскадном меню пункт 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-команды и макросы ERwin, Код процедуры показывается в окне SP Expansion, код шаблона - в окне SP Template. На рис. 2.84 в окне SP Template показан код шаблона процедуры с одним возвращаемым параметром, содержащим количество строк текущей таблицы (синтаксис Oracle 7.2).

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

Поделиться:
Популярные книги

Черный дембель. Часть 2

Федин Андрей Анатольевич
2. Черный дембель
Фантастика:
попаданцы
альтернативная история
4.25
рейтинг книги
Черный дембель. Часть 2

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Магия чистых душ 3

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Магия чистых душ 3

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Измена. Возвращение любви!

Леманн Анастасия
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Возвращение любви!

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Таня Гроттер и магический контрабас

Емец Дмитрий Александрович
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Таня Гроттер и магический контрабас

Имперский Курьер

Бо Вова
1. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Имперский Курьер

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Сердце дракона. Танец с врагом

Серганова Татьяна
2. Танец с врагом
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Сердце дракона. Танец с врагом