Руководство по программному пакету ERwin

Список макрокоманд


Данная таблица содержит имена всех макрокоманд ERwin, их синтаксис, описание расширенного кода, генерируемого макрокомандой и список СУБД, поддерживающих ее использование. Информация, которую Вы вводите вручную, заключена в угловые скобки (например, <macro code 1>).

Вы можете использовать эти макрокоманды в шаблонах, которые Вы создаете для триггеров, хранимых процедур и скриптов (если эти возможности поддерживаются Вашей СУБД). Если в графе 'СУБД' стоит слово 'Все', это означает, что любая СУБД поддерживает использование макрокоманды хотя бы в одном типе шаблонов ERwin. Обратите внимание, что некоторые макрокоманды, например %Fire, позволяющие Вам задавать, когда будет выполняться триггер, зависят от возможностей, которые не поддерживаются всеми СУБД. Более подробно о том, поддерживает ли Ваша СУБД RI-триггеры, хранимые процедуры и (или) скрипты, см. документацию по этой CУБД.

Макрокоманда

Описание

СУБД

%!=(<macro code1>, <macro code 2>)

Оператор сравнения, !=, сравнивает расширения macro code1 и macro code 2

Все

%%

Используйте два символа '%', если расширенный текст триггера должен содержать один символ '%'.

Все

%*(<macro code1>, <macro code 2>)

Перемножает расширения macro code1 и macro code 2

Все

%+(<macro code1>, <macro code 2>)

Складывает расширения macro code1 и macro code 2

Все

%-(<macro code1>, <macro code 2>)

Вычитает одно из другого расширения macro code1 и macro code 2

Все

%/(<macro code1>, <macro code 2>)

Делит одно на другое расширения macro code1 и macro code 2

Все

%:<variable>

Возвращает значение <variable>.

Все

%<(<macro code1>, <macro code 2>)

Оператор сравнения, <, сравнивает расширения macro code1 и macro code 2

Все

%<=(<macro code1>, <macro code 2>)

Оператор сравнения, <=, сравнивает расширения macro code1 и macro code 2

Все

%=(<variable>,<macro code>)

Присваивает расширение <macro code> переменной <variable>.

Все

%==(<macro code1>, <macro code 2>)

Оператор сравнения, ==, сравнивает расширения macro code1 и macro code 2

Все

%>(<macro code1>, <macro code 2>)

Оператор сравнения, >, сравнивает расширения macro code1 и macro code 2

Все

%>=(<macro code1>, <macro code 2>)

Оператор сравнения, >=, сравнивает расширения macro code1 и macro code 2

Все

РИС. 16.21.




Макрокоманда
Описание СУБД
%Action Действие, до или после которого выстреливает триггер (напр., INSERT, UPDATE, DELETE). Все
%Actions(<separator>) Разделенный список действий, до или после которых выстреливает триггер (напр., INSERT or UPDATE). Все
%And(<macro code1>,<macro code2>) Выполняет операцию 'логическое И' над булевскими предикатами, заданными в <macro code1> и <macro code2>. Все
%AttDatatype Создает строку, представляющую тип данных текущего атрибута. Все
%AttFieldname Создает строку, представляющую физическое имя поля текущего атрибута. Все
%AttFieldWidth Генерирует целое число, представляющее длину типа данных текущего атрибута (напр.,

varchar(50) -->50).
Все
%AttlsFK Булевский предикат, который может быть использован как условие в выражении %If. Он определяет, входит ли текущий атрибут во внешний ключ. Все
%AttlsPK Булевский предикат, который может быть использован как условие в выражении %If. Он определяет, входит ли текущий атрибут в первичный ключ Все
%AttName Создает строку, представляющую логическое имя текущего атрибута. Все
%AttNullOption Создает строку, представляющую режим нулевых значений для текущего атрибута. Все
%AttPhysDatatype Генерирует физический тип данных текущего атрибута независимо от того, является ли этот тип данных типом данных, определенным пользователем. Все
%Atts(<separator>,<function>,<prefix>) Выдает список всех атрибутов сущности триггера, выполняя заданную функцию для каждого элемента. Все
%AttValidation Возвращает имя правила валидации, связанного с данным атрибутом; может быть использован в ForEachAtt или ForEachFKAtt. Все
%Cardinality Кардинальность связи. Все
%Child Физическое имя таблицы дочерней сущности связи. Все
%ChildAtts(<separator>,

<function>,<prefix>)
Выдает список всех атрибутов дочерней сущности связи, выполняя заданную функцию для каждого элемента. Все
%ChildFK(<separator>,

<function>)
Выдает список внешних ключей дочерней сущности связи, выполняя заданную функцию для каждого элемента. (update(customer_number) или update(customer_name) и т.д.). Все
%ChildFKDecl(<old prefix>,<new prefix>,<separator>) Выдает список внешних ключей дочерней сущности связи с их типами данных (См. %ParamDecl). Все
%ChildNK(<separator>,

<function>,<prefix>)
Генерирует разделенный список функций для каждого неключевого элемента дочерней сущности (напр., update(customer_number) or update(customer_name) or ....). Все
%ChildNKDecl(<old prefix>,<new prefix>,<separator>) Выдает список неключевыых атрибутов дочерней сущности связи с их типами данных (См. %ParamDecl). Все
РИС. 16.21.
 







Макрокоманда
Описание СУБД
%ChildParamDecl(<old prefix>,<new prefix>,<separator>) Выдает список атрибутов дочерней сущности связи с их типами данных (См. %ParamDecl). Все
%ChildPK<separator>,

<function>,<prefix>)
Генерирует разделенный список функций для каждого элемента первичного ключа дочерней сущности (напр., update(customer_number) or update(customer_name) or ....). Все
%ChildPKDecl(<old prefix>,<new prefix>,<separator>) Выдает список атрибутов первичного ключа дочерней сущности связи с их типами данных (См. %ParamDecl). Все
%Concat(<value1>,<value2>) Производит конкатенацию <value1> и <value2>. Возвращает результат. Все
%CustomTriggerDefaultFooter Часть триггера, определенного пользователем - default footer, которая содержится в diagram-wide сегменте шаблона CUSTOM TRIGGER FOOTER. Все
%CustomTriggerDefaultHeader Часть триггера, определенного пользователем - default header, которая содержится в diagram-wide сегменте шаблона CUSTOM TRIGGER HEADER. Все
%Datetime Создает строку, представляющую текущую дату и время. Все
%DBMS Возвращает имя СУБД. Все
%DBMSDelim Возвращает разделитель операторов СУБД. Все
%Decl(<arg>,<initial value>) Объявляет <arg> как переменную и, если это задано, присваивает ей значение <initial value>. Все
%Fire Задает, когда выстреливает триггер (напр., BEFORE, AFTER). INFORMIX

Ingres

ORACLE7

Rdb
%ForEachAtt(<table>,

<separator>) {\015\n\<macro code>\015\n}
Расширяет макрокод для каждого из атрибутов заданной таблицы. Все
%ForEachChildRel

(<separator>) {\015\n\<relationship code>\015\n}
Расширяет <relationship code> для каждой связи, в которой сущность триггера является дочерней. Все
%ForEachFKAtt(<separator>) {\015\n\<macro code>\015\n} Расширяет макрокод для каждого из атрибутов внешнего ключа, мигрировавших через текущую связь. Все
%ForEachParentRel

(<separator>) {\015\n\<relationship code>\015\n}
Расширяет <relationship code> для каждой связи, в которой сущность триггера является родительской. Все
%If (<predicate>){<macro code>}

%Else {<macro code>}
В зависимости от условия, расширяет макрокод if или else. Часть else не является обязательной. Все
%include('path name') Позволяет Вам включать макрокоды триггера в файлы. Все
JoinFKPK([<child table>,<parent table>,<comparison op>,<separator>) Часть условия поиска оператора Where, присоединяющая внешний ключ дочерней сущности к первичному ключу родительской сущности связи. Все
JoinPKPK(<table>,

<correlation>,<comparison op>,<separator>)
Часть условия поиска оператора Where, соединяющая первичные ключи двух корреляций или таблицы и корреляции. Все
%Len(<macro code>) Возвращает длину строки <macro code>. Все
%Lower(<macro code>) Преобразует расширение <macro code> в нижний регистр. Все
РИС. 16.21.









Макрокоманда
Описание СУБД
%Max(<value1>,<value2>) Возвращает максимальное значение - <value1> или <value2>. Все
%Min(<value1>,<value2>) Возвращает минимальное значение - <value1> или <value2>. Все
%NK(<separator>,<function>,<prefix>) Выдает список всех неключевых атрибутов сущности триггера, выполняя заданную функцию для каждого элемента. Все
%NKDecl(<old prefix>,<new prefix>,<separator>) Выдает список неключевых атрибутов сущности триггера с их типами данных (См. %ParamDecl). Все
%Not(<macro code>) Выполняет операцию 'логическое НЕ' над булевским предикатом, определенным в <macro code>. Все
%NotnullFK(<child table>,<not null expression>, <prefix>,<separator>) Часть условия поиска оператора Where, сравнивающая внешний ключ дочерней сущности связи с null. Эта макрокоманда расширяется тогда и только тогда, когда связь является неидентифицирующей, nulls allowed. Все
%Or(<macro code1>,<macro code2>) Выполняет операцию 'логическое ИЛИ' над булевскими предикатами, определенными в <macro code1> и <macro code2>. Все
%ParamDecl(<old prefix>,<new prefix>,<separator>) Выдает список всех атрибутов сущности триггера с их типами данных. Имя каждого атрибута имеет формат: <old/new prefix>_<att_name>. Если заданы и старый и новый префикс, то длина списка удваивается. В первой половине списка содержится <old prefix>_<att_name>, во второй - < new prefix>_<att_name>. Все
%ParamPass(<old prefix>,<new prefix>,<param/value separator>,<param separator>) Присваивает значения параметрам процедур, заданным в <old prefix> и(или) в <new prefix> для всех атрибутов сущности триггера. Ingres
%Parent Физическое имя таблицы родительской сущности связи. Все
%ParentAtt (<attribute macro>) Расширяет любую макрокоманду атрибута (напр., %AttFieldName, %AttDatatype) для атрибута родительского первичного ключа, который, мигрировав, сформировал текущий атрибут. Все
%ParentAtts(<separator>,

<function>,<prefix>)
Выдает список всех атрибутов родительской сущности связи, выполняя заданную функцию для каждого элемента. Все
%ParentNK(<separator>,

<function>,<prefix>)
Выдает список всех неключевых атрибутов родительской сущности связи, выполняя заданную функцию для каждого элемента. Все
%ParentNKDecl(<old prefix>,<new prefix>,<separator>) Выдает список неключевых атрибутов родительской сущности связи с их типами данных (См. %ParamDecl). Все
%ParentParamDecl(<old prefix>,<new prefix>,<separator>) Выдает список неключевых атрибутов родительской сущности связи с их типами данных (См. %ParamDecl). Все
%ParentPK(<separator>, <function>) Выдает список всех атрибутов первичного ключа родительской сущности связи, выполняя заданную функцию для каждого элемента. Все
%ParentPKDecl(<old prefix>,<new prefix>,<separator>) Выдает список атрибутов первичного ключа родительской сущности связи с их типами данных (См. %ParamDecl). Все
%PhysRelName Физическое имя связи. Все
%PK(<separator>, <function>) Выдает список первичных ключей сущности триггера, выполняя заданную функцию для каждого элемента. Все
РИС. 16.21.







Макрокоманда
Описание СУБД
%PKDecl(<old prefix>,<new prefix>,<separator>) Выдает список атрибутов первичного ключа сущности триггера с их типами данных (См. %ParamDecl). Все
%RefClause Оператор ссылок; расширяется: REFERENCES OLD as <old name> new as <new name>. INFORMIX

Ingres

ORACLE7

Rdb
%RelTemplate Расширяет связь 'Template Code", присоединенную к текущей связи. Если нет присоединенного кода, то расширяется соответствующий diagram-wide шаблон ссылочной целостности. Все
%Scope Задает, каким образом будет выполняться триггер (напр., один раз для всей таблицы, для каждой строки и т.д.). ORACLE7
%SetFK(<child table>,<value>) Выдает список внешнего ключа дочерней сущности связи, в котором каждому элементу присвоено заданное значение. Все
%SetPK(<table>,<value>) Выдает список первичного ключа заданной таблицы, в котором каждому элементу присвоено заданное значение Все
%Substitute(<value>,<pattern>,<substitute>) Заменяет строку <pattern> в строке <value> на строку <substitute>. Все
%Substr(<macro code>,<initial pos>,<length>) Создает подстроку для расширения заданного <macro code>. Все
%Table Name Физическое имя таблицы сущности триггера. Все
%Template Name Возвращает имя шаблона триггера, хранимой процедуры или скрипта; может быть использовано в редакторе Entity Trigger. Все
%Trigger Name Физическое имя триггера. Все
%TriggERelRI(<action>, <type>,<integrity>) Булевский предикат, принимающий значение 'истинно', если заданный триггер и связь относятся к заданному действию (Update/Delete/Insert), типу (Child/Parent) и целостности (Cascade/Restrict/Set Null/Set Default). Все
%UpdateChildFK() Выдает список внешнего ключа дочерней сущности связи, выполняя функцию update для каждого элемента. ORACLE7, SQL Server SYBASE
%UpdateParentPK() Выдает список первичного ключа родительской сущности связи, выполняя функцию update для каждого элемента. ORACLE7, SQL Server SYBASE
%UpdatePK() Выдает список первичного ключа сущности триггера, выполняя функцию update для каждого элемента. ORACLE7, SQL Server SYBASE
%Upper(<macro code>) Преобразует расширение <macro code> в нижний регистр. Все
%ValidationHasValidValues (<arg>) Возвращает 'TRUE', если заданное правило валидации <arg> имеет допустимые значения, иначе - 'FALSE'. Все
%ValidationRule(<validation name>) или %ValidationRule Возвращает правило валидации для сервера; может быть использовано в любом месте с аргументом <validation name> или в рамках действия правила, без аргументов. Все
%ValidValue Возвращает значение допустимого значения; используется в рамках действия допустимого значения Все
%ValidValueDef Возвращает определение допустимого значения; используется в рамках действия допустимого значения Все
%VerbPhrase Возвращает глагольную фразу связи. Все


РИС. 16.21.



Содержание раздела