|
|
|||||||||||||||||||||||||||||
|
Макросы ERwinИсточник: Технология клиент-сервер, #4/1998
Поддержка макросов целевым серверомВ шаблонах, создаваемых для триггеров, хранимых процедур, pre- (предварительных) и post-скриптов генерации схем, можно использовать макросы ERwin в случае, если эти возможности поддерживаются целевой СУБД. Все макросы, за исключением тех, которые особо определены, могут использоваться для всех целевых серверов, поддерживаемых ERwin. Поддержка вашим сервером RI (Referential Integrity) - триггеров, хранимых процедур и/или сценариев - описана в документации сервера. Использование справочника по макросамСправочник макросов организован в алфавитном порядке по именам макросов. Информация по каждому макросу включает его описание, синтаксис, область видимости (например, операторы или фрагменты кода, где он может использоваться), возвращаемое значение; и, как правило, пример текста шаблона макроса (шаблона) и соответствующий ему "раскрываемый текст" (рис.1). Рассмотрим каждый элемент:
Примечание: Пример модели, приведенный выше, показывает физические имена таблиц и столбцов, обозначенные названиями с символом подчеркивания (например, MOVIE_COPY, movie_copy_number). Различные макросы ERwin могут возвращать либо логическое имя ERwin (которое может содержать дефисы или пробелы), либо физические имена баз данных (в которых дефисы или пробелы заменяются символом подчеркивания), в зависимости от ваших потребностей.
Синтаксис макросов ERwin
Синтаксис команд макросов ERwin состоит из ключевых слов, пунктуации и переменных.
Переменные макросов
Следующий список определяет общие переменные, используемые в синтаксисе макросов:
Рис. 1 Окно Table Trigger Editor. В правой части находится шаблон, %!=
Булев предикат, возвращающий "true", если значение <macro code1> не эквивалентно значению <macro code2>. %!=(<macro code1>, <macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE Пример
%%
Вставляет один символ процента (%) в раскрытый код триггера. %% Область видимости
Глобально Возвращаемое значение
% Пример
%*
Умножает значения <macro code1> и <macro code2>. %*(<macro code1>, <macro code2>) Область видимости
Глобально Возвращаемое значение
Число Пример
%+
Складывает значения <macro code1> и <macro code2>. %+(<macro code1>, <macro code2>) Область видимости
Глобально Возвращаемое значение
Число Пример
%-
Вычитает значение <macro code2> из значения <macro code1>. %-(<macro code1>, <macro code2>) Область видимости
Глобально Возвращаемое значение
Число Пример
%/
Делит значение <macro code1> на значение <macro code2>. %/(<macro code1>, <macro code2>) Область видимости
Глобально Возвращаемое значение
Число Пример
%:
Возвращает значение <variable>. %:<variable> Область видимости
Глобально Возвращаемое значение
Значение переменной <variable>. Пример
%<
Булев предикат, возвращающий значение "true", если значение <macro code1> меньше, чем значение <macro code2>. %<(<macro code1>, <macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE %<=
Булев предикат, возвращающий значение "true", если значение <macro code1> меньше или равно значению <macro code2>. %<=(<macro code1>, <macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE %=
Присваивает значение <macro code> объявленной переменной <variable> (См. %Decl). Результатом выражение является присвоение переменной, результат выполнения не проявляется в развернутом коде. %=(<variable>, <macro code>) Область видимости
Глобально Возвращаемое значение
Нет Пример
%==
Булев предикат, возвращающий "true", если значение <macro code1> равно значению <macro code2>. %==(<macro code1>, <macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE %>
Булев предикат, возвращающий "true", если значение <macro code1> больше значения <macro code2>. %>(<macro code1>, <macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE %>=
Булев предикат, возвращающий "true", если значение <macro code1> больше или равно значению <macro code2>. %>=(<macro code1>, <macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE %Action
Возвращает название действия, которое привело к активизации триггера. Зависит от содержания команды. %Action возвращает значение DELETE, INSERT или UPDATE. Например, если триггер активизировался по команде DELETE, %Action вернет значение DELETE. %Action Область видимости
Триггер Возвращаемое значение
DELETE, INSERT или UPDATE Пример
%Actions
Возвращает список действий, выполненных до или после активизации триггера. Если триггер является многофункциональным (например CREATE TRIGGER trigger_name ON table FOR INSERT, UPDATE, DELETE ...), макрос объявляет все действия. %Actions(<separator>) Область видимости
Триггер Возвращаемое значение
DELETE, INSERT и/или UPDATE Пример
%And
Позволяет комбинировать булевы выражения для создания более сложных выражений. %And выполняет логическое "И" с булевыми предикатами, определяемыми <macro code1> и <macro code2>. Например, код %If{%And(%AttIsFK,%AttIsRolenamed)...} позволяет выполнять дополнительные действия, если данный атрибут является внешним ключом и имеет ролевое имя. Для того, чтобы удовлетворить требованиям выполнения %And, оба элемента должны иметь значение "TRUE". %And(<macro code1>,<macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE %AttDatatype
Возвращает тип данных текущего атрибута. Примечание: С помощью доменов ERwin возможно присвоение пользовательского типа данных. Если атрибут имеет тип данных, определенный пользователем, этим макросом предусматривается имя для такого типа данных. %AttDatatype Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Тип данных атрибута Пример
%AttDef
Возвращает определение атрибута %AttDef Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Определение атрибута Пример
%AttDefault
Возвращает имя, присвоенное атрибуту по умолчанию. %AttDefault Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Имя, присвоенное атрибуту по умолчанию. Пример
%AttDomain
Возвращает имя домена, присвоенное атрибуту. %AttDomain Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Имя домена Пример
%AttFieldName
Возвращает имя столбца, связанного с текущим атрибутом. %AttFieldName Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Имя столбца Пример
%AttFieldWidth
Возвращает длину типа данных атрибута %AttFieldName Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Число Пример
%AttId
Возвращает атрибут ID. %AttId Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Целое %AttIsFK
Булев предикат, позволяющий вам определять, является текущий атрибут членом внешнего ключа или нет. %AttIsFK Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
TRUE/FALSE Пример
%AttIsRolenamed
Булев предикат, позволяющий вам определить, имеет ли текущий атрибут ролевое имя. Дополнительная информация приведена в "%AttIsFK". %AttIsRolenamed Область видимости
%ForEachAtt, % ForEachFKAtt, %If Возвращаемое значение
TRUE/FALSE %AttIsPK
Булев предикат, позволяющий вам определить, состоит ли текущий атрибут в первичном ключе. Дополнительная информация приведена в "%AttIsFK". %AttIsPK Область видимости
%ForEachAtt, % ForEachFKAtt, %If Возвращаемое значение
TRUE/FALSE %AttName
Возвращает логическое имя текущего атрибута. %AttName Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Имя атрибута Пример
%AttNullOption
Возвращает признак NULL/NOT NULL текущего атрибута. %AttNullOption Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
NULL/NOT NULL %AttPhysDatatype
Возвращает физический тип данных текущего атрибута, даже для типов данных, определенных пользователем. %AttPhysDatatype Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
Тип данных Пример
%Atts
Перечисляет все атрибуты сущности (таблицы) для которой создается триггер, выполняя определенную функцию для каждого атрибута. %Atts(<separator>,<action>,<prefix>) Область видимости
Триггер Возвращаемое значение
Список действий и атрибутов Пример
%AttValidation
Возвращает название правила проверки (validation name) данного атрибута. %AttValidation Область видимости
%ForEachAtt, % ForEachFKAtt Возвращаемое значение
название правила проверки (validation name). Пример
%Cardinality
Возвращает тип отношений:
%Cardinality Область видимости
RI или Переопределение отношений Возвращаемое значение
<ничего>, P, Z, <любое целое> %Child
Возвращает физическое имя таблицы дочерней сущности в отношении. %Child Область видимости
RI или Переопределение отношений Возвращаемое значение
Имя таблицы. Пример
%ChildAtts
Перечисляет все атрибуты дочерней сущности в отношении и выполняет над каждым указанные действия. %ChildAtts(<separator>,<action>, <prefix>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Названия атрибутов и действия. Пример
%ChildFK
Перечисляет внешние ключи дочерней сущности в отношении и выполняет над каждым указанные действия. %ChildFK(<separator>,<action>,<prefix>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имена атрибутов и действия Пример
%ChildFKDecl
Перечисляет внешние ключи дочерней сущности в отношении, а затем их типы данных. %ChildFKDecl (<old prefix>,<new prefix >, <separator>>,<attribute/type separator>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имена атрибутов FK и типы данных Пример
%ChildNK
Перечисляет неключевые элементы дочерней сущности и выполняет указанные действия с каждым из них. %ChildNK(<separator>,<action>,<prefix>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имена неключевых атрибутов и действия Пример
%ChildNKDecl
Перечисляет неключевые элементы дочерней сущности в отношении, а затем их типы данных. %ChildNKDecl (<old prefix>,<new prefix>, <separator>,<attribute/type separator>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имена неключевых атрибутов и типы данных Пример
%ChildParamDecl
Перечисляет все атрибуты дочерней сущности в отношении, а затем их типы данных. Это полезно при объявлении параметров хранимых процедур. %ChildParamDecl (<old prefix>,<new prefix>, <separator>,<attribute/type separator>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имена атрибутов и типы данных Пример
%ChildFK
Перечисляет элементы первичного ключа дочерней сущности в отношении и выполняет с каждым указанные действия. %ChildPK(<separator>,<action>, <prefix>) Область видимости
RI или Переопределение отношений. Возвращаемое значение
Неключевые имена атрибутов и действия. Пример
%ChildPKDecl
Перечисляет первичные ключевые элементы дочерней сущности в отношении, а затем их типы данных. %ChildPKDecl (<old prefix>,<new prefix>, <separator>, <attribute/type separator>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имена атрибутов PK и типы данных Пример
%Concat
Добавляет <value 2> в конец <value 1>, результатом является объединенная строка. %Concat(<value1>, <value2>) Область видимости
Глобально Возвращаемое значение
Строка %CurrentDatabase
Возвращает имя базы данных, используемой при генерации скрипта (в виде значения вводимого в диалоговом окне Connection <DB>). %CurrentDatabase Область видимости
Глобально Возвращаемое значение
Строка Пример
%CurrentFile
Возвращает имя ERwin файла, из которого был сгенерирован сценарий. %CurrentFile Область видимости
Глобально Возвращаемое значение
Строка Пример
%CurrentServer
Возвращает имя целевого сервера, использованного при генерации скрипта (в виде значения вводимого в диалоговом окне Connection <DB>). %CurrentServer Область видимости
Глобально Возвращаемое значение
Строка Пример
%CurrentUser
Возвращает имя пользователя, сгенерировавшего скрипта (в виде значения вводимого в диалоговом окне Connection <DB>). %CurrentUser Область видимости
Глобально Возвращаемое значение
Cтрока Пример
%CustomTriggerDefaultBody
Вставляет текст из шаблона триггера в триггер в развернутой форме. %CustomTriggerDefaultBody Область видимости
Триггер. Возвращаемое значение
Содержимое шаблона CustomTriggerDefaultBody. %CustomTriggerDefaultFooter
Вставляет текст из шаблона нижнего колонтитула в триггер в развернутой форме. %CustomTriggerDefaultFooter Область видимости
Триггер. Возвращаемое значение
Содержимое шаблона CustomTriggerDefaultFooter. %CustomTriggerDefaultHeader
Вставляет текст из шаблона заголовка в триггер в развернутой форме. %CustomTriggerDefaultHeader Область видимости
Триггер. Возвращаемое значение
Содержимое шаблона CustomTriggerDefaultHeader. %DatatypeName
Возвращает имя типа данных %DatatypeName() Область видимости
Глобально Возвращаемое значение
Тип данных Пример
%DatatypeScale
Для десятичных типов данных, %DatatypeScale возвращает число десятичных знаков (значение после десятичной запятой). %DatatypeScale() Область видимости
Глобально Возвращаемое значение
Целое Пример
%DatatypeWidth
Возвращает ширину поля описанную в типе данных. %DatatypeWidth() Область видимости
Глобально Возвращаемое значение
Целое Пример
%Datetime
Возвращает текущие дату и время. %Datetime Область видимости
Глобально Возвращаемое значение
Строка Пример
%DBMS
Возвращает имя базы данных. %DBMS Область видимости
Глобально Возвращаемое значение
Строка Пример
%DBMSDelim
Возвращает оператор разделитель для выбранной СУБД. %DBMSDelim Область видимости
Глобально Возвращаемое значение
, или ; или другой разделитель. %Decl
Объявляет <переменную> и, необязательно, инициализирует ее с помощью <initial value>. Например, если вы использовали оператор %Decl(var1,0), то это значит, что объявляется переменная var1, которая инициализируется значением 0. Возвращаемое значение не генерируется. %Decl(<variable>,<initial value>) Область видимости
Глобально Возвращаемое значение
Нет Пример
%DefaultName
Возвращает имя по умолчанию. %DefaultName Область видимости
%ForEachDefault Возвращаемое значение
Имя по умолчанию. Пример
%DefaultValue
Возвращает значение по умолчанию. %DefaultValue(<default name> или %DefaultValue Область видимости
Глобально (при использовании аргумента - <default name>), либо %ForEachDefault (без аргумента). Возвращаемое значение
Значение по умолчанию. Пример
%DomainDatatype
Возвращает физический тип данных домена. %DomainDatatype(<domain name>) или %DomainDatatype Область видимости
Глобально (при использовании аргумента - <domain name>), либо %ForEachDomain. Возвращаемое значение
Значение домена по умолчанию. Пример
%DomainDef
Возвращает имя, по умолчанию присвоенное домену. %DomainDef(<domain name>) или %DomainDef Область видимости
Глобально (при использовании аргумента <domain name>), либо %ForEachDomain. Возвращаемое значение
Значение домена по умолчанию. Пример
%DomainName
Возвращает имя домена. %DomainName Область видимости
%ForEachDomain Возвращаемое значение
Имя домена Пример
%DomainNullOption
Возвращает информацию о том какие NULL атрибуты, будут иметь столбцы созданные с использованием домена <domain name>. %DomainNullOption (<domain name>) или %DomainNullOption Область видимости
Глобально (при использовании аргумента <domain name>), либо %ForEachDomain. Возвращаемое значение
NULL, NOT NULL, IDENTITY, WITH NULL или NOT NULL WITH DEFAULT %DomainValidation
Возвращает название правила проверки (validation name) присоединенного к домену. %DomainValidation(<domain name>) или %DomainValidation Область видимости
Глобально (при использовании аргумента <domain name>), либо %ForEachDomain. Возвращаемое значение
название правила проверки. Пример
%EntityId
Возвращает идентификатор сущности или таблицы %EntityId (<entity or tablename>) Область видимости
RI, Переопределение отношений или Триггер Возвращаемое значение
Целое Пример
%EntityName
Возвращает имя сущности или таблицы %EntityName (<entity or tablename>) Область видимости
RI, Переопределение отношений или Триггер Возвращаемое значение
Строка Пример
%File
Выполняет программу макроса, заключенного в фигурные скобки и записывает результат в данный файл. Этот макрос предусматривает работу с учетом ограничения Windows 3.х на размер строки в 64 кб. %File (<filename>){<macro code>} Область видимости
Глобально Возвращаемое значение
Строка Пример
%Fire
Определяет, когда запускается триггер. Доступно только для INFORMIX, ORACLE7 и Rdb. %Fire Область видимости
Триггер. Возвращаемое значение
BEFORE или AFTER Пример
%ForEachAtt
Раскрывает макрос для каждого атрибута данной таблицы. %ForEachAtt(<table name>,<separator>) {<macro code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого атрибута данной таблицы. Пример
%ForEachChildRel
Раскрывает <relationship code> (код отношений) для каждого отношения в котором триггерная сущность является дочерней. %ForEachChildRel(<separator>) {<relationship code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого отношения. Пример
%ForEachDefault
Раскрывает макрос для всех атрибутов, имеющих default значения. %ForEachDefault (<separator>) {<macro code>} Область видимости
Глобально Возвращаемое значение
Результат <macro code> для всех атрибутов имеющих default значения. Пример
%ForEachDomain
Раскрывает макрос для всех доменов, которые реализованы как пользовательские типы данных. %ForEachDomain(<separator>){<macro code>} Область видимости
Глобально Возвращаемое значение
Результат <macro code> Пример
%ForEachEntity
Раскрывает макрос для всех сущностей текущей предметной области (subject area). %ForEachEntity(<separator>) {<macro code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждой сущности. Пример
%ForEachFKAtt
Раскрывает макрос для каждого атрибута внешнего ключа. %ForEachFKAtt(<separator>){<macro code>} Область видимости
RI или Переопределение отношений. Возвращаемое значение
Результат <macro code> для каждого атрибута FK. Пример
%ForEachIndex
Раскрывает макрос для всех индексов в текущей предметной области. <table> используется по умолчанию для таблицы в текущей области видимости; может использоваться для присвоения имени другой таблице (%Parent, MOVIE_COPY). <type> фильтрует тип индекса (AK, IE, IF, PK, AK1, IE2 и т.д.). По умолчанию для всех. %ForEachIndex ([<table>],[<type>],[<name>],[<separator>]){<macro code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого индекса Пример
%ForEachIndexMem
Раскрывает макрос для всех аттрибутов, входящих в индексы текущей предметной области. <sequence> может использоваться для ввода номера, присвоенного определенному члену индекса. По умолчанию для всех членов. %ForEachIndexMem ([<sequence>],[<separator>]) {<macro code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого члена индекса. Пример
%ForEachKey
Раскрывает макрос для всех альтернативных ключей и неуникальных индексов (IE) в текущей предметной области. %ForEachKey ([<table>],[<type>],[<separator>]) {<macro code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого ключа. Пример
%ForEachKeyMem
Раскрывает макрос для всех членов ключа. %ForEachKeyMem ([<sequence>],[<separator>]) {<macro code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого члена индекса. Пример
%ForEachParentRel
Раскрывает <relationship code> для каждого отношения, где сущность, для которой создаётся триггер, является родительской. %ForEachParentRel(<separator>){<relationship code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого отношения. Пример
%ForEachValidValue
Раскрывает макрос для всех допустимых значений текущего правила (validation). %ForEachValidValue(<separator>) {<macro code>} Область видимости
Триггер., %ForEachValidation Возвращаемое значение
Результат <macro code> для каждого допустимого значения. Пример
%ForEachValidation
Раскрывает макрос для всех правил. %ForEachValidation(<separator>){<macro code>} Область видимости
Триггер. Возвращаемое значение
Результат <macro code> для каждого правила. Пример
%If %Else
Условное выполнение %If<macro code1>, если логическое выражение имеет значение "true", либо %Else<macro code2>, если логическое выражение имеет значение "false". Оператор %Else - необязателен. %If (<predicate>) {<macro code1>} %Else {<macro code2>} Область видимости
Глобально Возвращаемое значение
Результат <macro code1> каждый раз, если значение <predicate> = TRUE. Результат <macro code2> каждый раз, если значение <predicate> = FALSE. Пример
%Include
Позволяет вам включить текст макроса при работе с несколькими файлами или шаблонами триггеров. %Include ("<path name>") %Include (<trigger template name>) Область видимости
Глобально Возвращаемое значение
Строка Пример
%IndexName
Возвращает имя индекса. %IndexName Область видимости
Триггер, %ForEachIndex, %ForEachIndexMem Возвращаемое значение
Строка Пример
%IndexType
Возвращает тип индекса. %IndexType Область видимости
Триггер., %ForEachIndex, %ForEachIndexMem Возвращаемое значение
FK, PK, AK, IE1 и т.д. Пример
%JoinFKPK
Позволяет произвести соединение по внешнему ключу дочерней сущности и первичному ключу родительской сущности исходя из реляционной связи (Join между FK дочерней и PK родительской сущностей). %JoinFKPK ([<child table>, <parent table>, <comparison op>,<separator>) Область видимости
RI или Переопределение отношений, оператор WHERE или JOIN Возвращаемое значение
Программа, поддерживаемая сравнением значений PK и FK в отношении. Пример
%JoinPKPK
Позволяет произвести соединение по первичным ключам двух сущностей. %JoinPKPK (<table>, <correlation>, <comparison op>,<separator>) Область видимости
RI, Переопределение отношений, Триггер, условный оператор поиска WHERE Возвращаемое значение
Текст, производящий сравнение значений PK из двух таблиц. Пример
%KeyName
Возвращает имя ключа. %KeyName Область видимости
Триггер., %ForEachKey, % ForEachKeyMem Возвращаемое значение
Строка Пример
%Len
Возвращает длину <macro code>. %Len(<macro code>) Область видимости
Глобально Возвращаемое значение
Целое Пример
%Lower
Преобразует результат <macro code> в нижний регистр. %Lower (<macro code>} Область видимости
Глобально Возвращаемое значение
Строка в нижнем регистре. Пример
%Max
Сравнивает <value1> и <value2> и возвращает большее. %Max(<value1>,<value2>) Область видимости
Глобально Возвращаемое значение
Большее значение из сравниваемых. Пример
%Min
Сравнивает <value1> и <value2> и возвращает меньшее. %Min(<value1>,<value2>) Область видимости
Глобально Возвращаемое значение
Меньшее значение из сравниваемых Пример
%NK
Перечисляет все неключевые атрибуты триггерной сущности и выполняет определенные действия с каждым. %NK (<separator>,<action>,<prefix>) Область видимости
Триггер. Возвращаемое значение
Атрибут и действие Пример
%NKDecl
Перечисляет неключевые атрибуты триггерной сущности, а затем их типы данных. %NKDecl(<old prefix>,<new prefix>,<separator>,<attribute/type separator>) Область видимости
Триггер. Возвращаемое значение
Имена и типы данных атрибутов Пример
%Not
В булевом выражении, определяемом в <macro code>, %Not осуществляет "логическое НЕ". Позволяет комбинировать булевы выражения для создания более сложных выражений. %Not (<macro code>) Область видимости
Глобально, %If Возвращаемое значение
Результат макроса. Пример
%NotnullFK
Сравнивает внешний ключ дочерней сущности <child table> из отношения с <null expression>. Этот макрос выполняется, только если отношение не определяющее и допустимы null значения. %NotnullFK(<child table>, <not null expression>,<prefix>,<separator>) Область видимости
RI или Переопределение отношений, оператор WHERE Возвращаемое значение
NULL выражение для каждого FK, допускающего нулевые значения. Пример
%Or
В булевых выражениях, определяемых в <macro code1> и <macro code2>, %Or осуществляет "логическое ИЛИ". Позволяет комбинировать булевы выражения для создания более сложных выражений. Например, %If{%Or(%AttisFK,%AttIsRolenamed)...} позволяет выполнять дополнительные действия, если данный атрибут является внешним ключом или имеет ролевое имя. Макрос выполняется, если любой из элементов имеет значение "TRUE". %Or (<macro code1>,<macro code2>) Область видимости
Глобально, %If Возвращаемое значение
TRUE/FALSE Пример
%ParamDecl
Перечисляет все атрибуты триггерной сущности, а затем их типы данных. %ParamDecl(<old prefix>,<new prefix>,<separator>,<attribute/type separator>) Область видимости
Триггер. Возвращаемое значение
Атрибуты и типы данных. Пример
%ParamPass
Присваивает значения параметрам процедур, определенным в <old prefix> и/или в <new prefix>, для всех атрибутов триггерной сущности. Доступен только для Ingres. %ParamDecl(<old prefix>,<new prefix>,<param/value separator>,<param separator>) Область видимости
Триггер. Возвращаемое значение
Список параметров для Ingres. Пример
%Parent
Возвращает физическое имя таблицы родительской сущности из реляционной связи. %Parent Область видимости
RI или Переопределение отношений Возвращаемое значение
Строка Пример
%ParentAtt
Раскрывает любой макрос атрибутов (например, %AttFieldName, %AttDatatype) для первичного родительского ключевого атрибута, от которого мигрировал текущий атрибут. %ParentAtt(<attribute macro>) Область видимости
%ForEachAtt, %ForEachFKAtt Возвращаемое значение
Результат <attribute macro> Пример
%ParentAtts
Перечисляет все атрибуты родительской сущности в отношении, и выполняет с каждым указанные действия. %ParentAtts(<separator>,<action>,<prefix>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Атрибуты и действия Пример
%ParentNK
Перечисляет неключевые атрибуты родительской сущности в отношении и выполняет с каждым указанные действия. %ParentNK(<separator>,<action>,<prefix>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Атрибуты и действия Пример
%ParentNKDecl
Перечисляет неключевые атрибуты родительской сущности в отношении, а затем - типы данных. %ParentNKDecl (<old prefix>,<new prefix>,<separator>,<attribute/type separator>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Атрибуты и типы данных FK. Пример
%ParentParamDecl
Перечисляет атрибуты родительской сущности в отношении, а затем - их типы данных. %ParentParamDecl (<old prefix>,<new prefix>,<separator>,<attribute/type separator>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Атрибуты и типы данных. Пример
%ParentPK
Перечисляет элементы первичного ключа родительской сущности в отношении и выполняет с ними указанные действия. %ParentPK(<separator>,<action>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Атрибуты первичных ключей и действия. Пример
%ParentPKDecl
Перечисляет элементы первичного ключа родительской сущности в отношении, а затем - их типы данных. %ParentPKDecl (<old prefix>,<new prefix>,<separator>,<attribute/type separator>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имена атрибутов первичных ключей и типы данных. Пример
%PhysRelName
Возвращает физическое имя отношения. %PhysRelName Область видимости
RI или Переопределение отношений Возвращаемое значение
Строка Пример
%PK
Перечисляет элементы первичного ключа триггерной сущности и выполняет с ними указанные действия. %PK(<separator>,<action>,<prefix>) Область видимости
Триггер. Возвращаемое значение
Первичные ключевые атрибуты и действия. Пример
%PKDecl
Перечисляет элементы первичного ключа сущности, а затем - их типы данных. %PKDecl (<old prefix>,<new prefix>,<separator>>,<attribute/type separator>)) Область видимости
Триггер. Возвращаемое значение
Имена первичных ключевых атрибутов и типы данных. Пример
%RefClause
Создает описание Reference, исходя из информации OLD и NEW, добавленной в Редакторе Триггерного Объекта. Доступен только для INFORMIX, Ingres, ORACLE7 и Rdb. %RefClause Область видимости
Триггер. Возвращаемое значение
Оператор ссылки Пример
%RelId
Возвращает идентификатор отношения. %RelId Область видимости
RI или Переопределение отношений Возвращаемое значение
Целое %RelIsNonull
Проверяет отношения на наличие нулевых выражений и возвращает "true", если null - недопустим, и "false", если допустим. %RelIsNonull Область видимости
RI или Переопределение отношений, %If Возвращаемое значение
TRUE/FALSE %RelRI
Возвращает тип отношения ссылочной целостности ( CASCADE, RESTRICT...) для указанного действия <action> (insert, update, delete) и <RI type> (родительский или дочерний). %RelRI(<action>,<RI type>) Область видимости
RI или Переопределение отношений Возвращаемое значение
CASCADE, RESTRICT, SET NULL, SET DEFAULT или NONE Пример
%RelTemplate
Раскрывает шаблон, присоединенный к текущему отношению. Если никакой макрос не присвоен, раскрывается шаблон ссылочной целостности диаграммы по умолчанию. %RelTemplate Область видимости
RI или Переопределение отношений Возвращаемое значение
Раскрывает фрагмент программы отношения в соответствии с типом триггера. %RelType
Возвращает тип отношения. Допустимые значения типа отношения и их определения включают: RT_ID (определено), RT_NI (не определено), RT_SC (субтип) или RT_MM (многие-ко-многим). %RelType Область видимости
RI или Переопределение отношений Возвращаемое значение
RT_ID, RT_NI, RT_SC или RT_MM Пример
%Scope
Возвращает определение того, как выполняется триггер. Доступен только для ORACLE7. %Scope Область видимости
Триггер. Возвращаемое значение
FOR EACH ROW или FOR EACH TABLE Пример
%SetFK
Перечисляет внешние ключевые элементы дочерней сущности в отношении и присваивает каждому члену указанное значение. %SetFK (<child table>,<value>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имя и значение атрибута внешнего ключа Пример
%SetPK
Перечисляет первичные ключевые элементы указанной таблицы и присваивает каждому члену указанное значение. %SetPK(<table>,<value>) Область видимости
RI или Переопределение отношений Возвращаемое значение
Имя и значение атрибута первичного ключа. Пример
%Substitute
Заменяет строку <pattern> в строке <value> строкой <substitute>. %Substitute(<value>,<pattern>,<substitute>) Область видимости
Глобально Возвращаемое значение
Строка Пример
%Substr
Возвращает подстроку при раскрытии данного <macro code>. <length> (длина) необязательна. %Substr(<macro code>,<initial pos>,<length>) Область видимости
Глобально Возвращаемое значение
Строка Пример
%Switch
Сравнивает аргумент с указанной альтернативой. ERwin раскрывает макрос в соответствии с совпавшей альтернативой. Если ни одного совпадения не происходит, ERwin выполняет макрос по умолчанию. %Switch (<argument>) {%Choose(<choice 1>) {<macro code 1>} %Choose(<choice 2>) {<macro code2>} <etc...> %Default {<default macro code>}} Область видимости
Глобально Возвращаемое значение
Значение макроса Пример
%TableName
Возвращает физическое имя таблицы триггерного объекта. %TableName Область видимости
Триггер. Возвращаемое значение
Имя таблицы Пример
%TemplateName
Возвращает имя шаблона триггера, хранимой процедуры или сценария. %TemplateName Область видимости
Триггер. Возвращаемое значение
Имя шаблона Пример
%TriggerName
Возвращает физическое имя триггера. %TriggerName Область видимости
Триггер. Возвращаемое значение
Имя триггера Пример
%TriggerRelRI
Булево выражение, имеющее значение "true", если данные триггер и отношение соответствуют данному действию <action>(Update/Delete/Insert), <RI type> (Child/Parent) и <integrity> (Cascade/Restrict/Set Null/Set Default). %TriggerRelRI(<action>,<RI type>,<integrity>) Область видимости
RI или Переопределение отношений, %If Возвращаемое значение
TRUE/FALSE Пример
%UpdateChildFK
Перечисляет внешние ключевые элементы дочерней сущности в отношении и выполняет обновление с каждым членом. Доступно только для ORACLE7, SQL Server и SYBASE. %UpdateChildFK() Область видимости
RI или Переопределение отношений Возвращаемое значение
Значение и действие внешнего ключа Пример
%UpdateParentPK
Перечисляет первичные ключевые элементы родительской сущности в отношении и выполняет обновление каждого члена. Доступно только для ORACLE7, SQL Server и SYBASE. %UpdateParentPK() Область видимости
RI или Переопределение отношений Возвращаемое значение
Значение и действие первичного ключа Пример
%UpdatePK
Перечисляет первичные ключевые элементы триггерной сущности и выполняет обновление каждого члена. Доступно только для ORACLE7, SQL Server и SYBASE. %UpdatePK() Область видимости
Триггер. Возвращаемое значение
Значение и действие первичного ключа Пример
%Upper
Преобразует раскрытый <macro code> в верхний регистр. %Upper (<macro code>) Область видимости
Глобально Возвращаемое значение
Строка Пример
%ValidationHasValidValues
Булево выражение, позволяющее вам определять, имеет ли текущее допущение корректные значения. % ValidationHasValidValues(<validation name>) Область видимости
Глобально (с аргументом <validation name>) или %ForEachValidation, %If Возвращаемое значение
TRUE/FALSE %ValidationName
Возвращает название правила проверки допустимости. %ValidationName Область видимости
%ForEachValidation Возвращаемое значение
Имя правила проверки допустимости Пример
%ValidationRule
Возвращает правило проверки со стороны сервера. %ValidationRule(<validation name>} или %ValidationRule Область видимости
Глобально (с аргументом <validation name>) или %ForEachValidation Возвращаемое значение
Строка правила проверки допустимости Пример
%ValidValue
Возвращает допустимые значения данных %ValidValue Область видимости
%ForEachValidValue Возвращаемое значение
Строка Пример
%ValidValueDef
Возвращает определение допустимого значения. %ValidValueDef Область видимости
%ForEachValidValue Возвращаемое значение
Строка Пример
%VerbPhrase
Возвращает сообщение об отношении. %VerbPhrase Область видимости
RI или Переопределение отношений Возвращаемое значение
Сообщение об отношении Пример
|
|