СТАТЬЯ |
16.01.01
|
Статья была опубликована в Технологии клиент-сервер, #4-1998
В шаблонах, создаваемых для триггеров, хранимых процедур, pre- (предварительных) и post-скриптов генерации схем, можно использовать макросы ERwin в случае, если эти возможности поддерживаются целевой СУБД.
Все макросы, за исключением тех, которые особо определены, могут использоваться для всех целевых серверов, поддерживаемых ERwin. Поддержка вашим сервером RI (Referential Integrity) - триггеров, хранимых процедур и/или сценариев - описана в документации сервера.
Справочник макросов организован в алфавитном порядке по именам макросов. Информация по каждому макросу включает его описание, синтаксис, область видимости (например, операторы или фрагменты кода, где он может использоваться), возвращаемое значение; и, как правило, пример текста шаблона макроса (шаблона) и соответствующий ему "раскрываемый текст" (рис.1). Рассмотрим каждый элемент:
Примечание: Пример модели, приведенный выше, показывает физические имена таблиц и столбцов, обозначенные названиями с символом подчеркивания (например, MOVIE_COPY, movie_copy_number). Различные макросы ERwin могут возвращать либо логическое имя ERwin (которое может содержать дефисы или пробелы), либо физические имена баз данных (в которых дефисы или пробелы заменяются символом подчеркивания), в зависимости от ваших потребностей.
Область видимости |
Шаблоны |
|
RI или Переопределение отношений |
PARENT INSERT RESTRICT PARENT INSERT CASCADE PARENT INSERT SET NULL PARENT INSERT SET DEFAULT PARENT UPDATE RESTRICT PARENT UPDATE CASCADE PARENT UPDATE SET NULL PARENT UPDATE SET DEFAULT PARENT DELETE RESTRICT PARENT DELETE CASCADE PARENT DELETE SET NULL PARENT DELETE SET DEFAULT |
CHILD INSERT RESTRICT CHILD INSERT CASCADE CHILD INSERT SET NULL CHILD INSERT SET DEFAULT CHILD UPDATE RESTRICT CHILD UPDATE CASCADE CHILD UPDATE SET NULL CHILD UPDATE SET DEFAULT CHILD DELETE RESTRICT CHILD DELETE CASCADE CHILD DELETE SET NULL CHILD DELETE SET DEFAULT |
Хранимые процедуры, присоединенные к таблицам (макросы, используемые в %ForEachFKAtt); pre- и post-скрипты (макросы, используемые в %ForEachEntity) |
||
Trigger Override |
TRIGGER UPDATE HEADER TRIGGER DELETE HEADER TRIGGER INSERT HEADER TRIGGER UPDATE FOOTER TRIGGER DELETE FOOTER |
TRIGGER INSERT FOOTER CUSTOM TRIGGER HEADER CUSTOM TRIGGER FOOTER CUSTOM TRIGGER DEFAULT BODY |
Хранимые процедуры, присоединенные к таблицам (макросы, используемые в %ForEachAtt); pre- и post- скрипты (макросы, используемые в %ForEachEntity) |
||
Global |
Все триггеры, хранимые процедуры и pre- и post-скрипты. |
Синтаксис команд макросов ERwin состоит из ключевых слов, пунктуации и переменных.
Следующий список определяет общие переменные, используемые в синтаксисе макросов:
Рис. 1 Окно Table Trigger Editor. В правой части
находится шаблон,
состоящий из макросов, в левой - раскрытый код.
Булев предикат, возвращающий "true", если значение <macro code1> не эквивалентно значению <macro code2>.
%!=(<macro code1>, <macro code2>)
Область видимости
Глобально, %If
Возвращаемое значение
TRUE/FALSE
Пример
Код шаблона |
Результат |
%ForEachAtt( ) {%If(%!=(%AttFK){%AttName}} |
general-condition |
Вставляет один символ процента (%) в раскрытый код триггера.
%%
Область видимости
Глобально
Возвращаемое значение
%
Пример
Код шаблона |
Результат |
/* %%JoinFKPK |
/* %JoinFKPK |
Умножает значения <macro code1> и <macro code2>.
%*(<macro code1>, <macro code2>)
Область видимости
Глобально
Возвращаемое значение
Число
Пример
Код шаблона |
Результат |
string1="aaaaa" string2="bbbbbbbbb" %*(%Len(%:string1), % Len(%:string2)) |
45 |
Складывает значения <macro code1> и <macro code2>.
%+(<macro code1>, <macro code2>)
Область видимости
Глобально
Возвращаемое значение
Число
Пример
Код шаблона |
Результат |
String1="aaaaa" String2="bbbbbbbbb" %+(%Len(%:string1), % Len(%:string2)) |
14 |
Вычитает значение <macro code2> из значения <macro code1>.
%-(<macro code1>, <macro code2>)
Область видимости
Глобально
Возвращаемое значение
Число
Пример
Код шаблона |
Результат |
string1="aaaaa" string2="bbbbbbbbb" %-(%Len(%:string1), % Len(%:string2)) |
- 4 |
Делит значение <macro code1> на значение <macro code2>.
%/(<macro code1>, <macro code2>)
Область видимости
Глобально
Возвращаемое значение
Число
Пример
Код шаблона |
Результат |
string1="aaaaa" string2="bbbbbbbbb" %/(%Len(%:string1), % Len(%:string2)) |
0.5556 |
Возвращает значение <variable>.
%:<variable>
Область видимости
Глобально
Возвращаемое значение
Значение переменной <variable>.
Пример
Код шаблона |
Результат |
%:@ins_customer_id |
1213 |
Булев предикат, возвращающий значение "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>)
Область видимости
Глобально
Возвращаемое значение
Нет
Пример
Код шаблона |
Результат |
%=(@var, %Tablename) |
Внутренний, @var присвоено значение %Tablename |
Булев предикат, возвращающий "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 возвращает значение DELETE, INSERT или UPDATE. Например, если триггер активизировался по команде DELETE, %Action вернет значение DELETE.
%Action
Область видимости
Триггер
Возвращаемое значение
DELETE, INSERT или UPDATE
Пример
Код шаблона |
Результат |
%Action |
DELETE |
Возвращает список действий, выполненных до или после активизации триггера. Если триггер является многофункциональным (например CREATE TRIGGER trigger_name ON table FOR INSERT, UPDATE, DELETE ...), макрос объявляет все действия.
%Actions(<separator>)
Область видимости
Триггер
Возвращаемое значение
DELETE, INSERT и/или UPDATE
Пример
Код шаблона |
Результат |
%Actions (",") |
DELETE,DELETE |
Позволяет комбинировать булевы выражения для создания более сложных выражений. %And выполняет логическое "И" с булевыми предикатами, определяемыми <macro code1> и <macro code2>. Например, код %If{%And(%AttIsFK,%AttIsRolenamed)...} позволяет выполнять дополнительные действия, если данный атрибут является внешним ключом и имеет ролевое имя. Для того, чтобы удовлетворить требованиям выполнения %And, оба элемента должны иметь значение "TRUE".
%And(<macro code1>,<macro code2>)
Область видимости
Глобально, %If
Возвращаемое значение
TRUE/FALSE
Возвращает тип данных текущего атрибута. Примечание: С помощью доменов ERwin возможно присвоение пользовательского типа данных. Если атрибут имеет тип данных, определенный пользователем, этим макросом предусматривается имя для такого типа данных.
%AttDatatype
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Тип данных атрибута
Пример
Код шаблона |
Результат |
%ForEachAtt () {%AttName -> %AttDatatype} |
Master-number -> int Movie-copy-number -> int General-condition -> varchar(10) |
Возвращает определение атрибута
%AttDef
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Определение атрибута
Пример
Код шаблона |
Результат |
/*Если текущий атрибут - master_number, то*/ %AttDef |
Уникальный идентификатор фильма |
Возвращает имя, присвоенное атрибуту по умолчанию.
%AttDefault
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Имя, присвоенное атрибуту по умолчанию.
Пример
Код шаблона |
Результат |
%AttDefault |
SPACES |
Возвращает имя домена, присвоенное атрибуту.
%AttDomain
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Имя домена
Пример
Код шаблона |
Результат |
/*Если текущий атрибут cust_phone, то*/ %AttDomain |
PHONE NUMBER |
Возвращает имя столбца, связанного с текущим атрибутом.
%AttFieldName
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Имя столбца
Пример
Код шаблона |
Результат |
/*Если текущий атрибут renting-customer, то*/ %AttFieldName |
renting_customer |
Возвращает длину типа данных атрибута
%AttFieldName
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Число
Пример
Код шаблона |
Результат |
/*Для типа данных varchar (50)*/ %AttFieldWidth |
50 |
Возвращает атрибут ID.
%AttId
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Целое
Булев предикат, позволяющий вам определять, является текущий атрибут членом внешнего ключа или нет.
%AttIsFK
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
TRUE/FALSE
Пример
Код шаблона |
Результат |
%ForEachAtt() { %If{%AttIsFK} %AttName} |
Master-number movie-copy-number |
Булев предикат, позволяющий вам определить, имеет ли текущий атрибут ролевое имя. Дополнительная информация приведена в "%AttIsFK".
%AttIsRolenamed
Область видимости
%ForEachAtt, % ForEachFKAtt, %If
Возвращаемое значение
TRUE/FALSE
Булев предикат, позволяющий вам определить, состоит ли текущий атрибут в первичном ключе. Дополнительная информация приведена в "%AttIsFK".
%AttIsPK
Область видимости
%ForEachAtt, % ForEachFKAtt, %If
Возвращаемое значение
TRUE/FALSE
Возвращает логическое имя текущего атрибута.
%AttName
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Имя атрибута
Пример
Код шаблона |
Результат |
/*Если текущий атрибут master-number, то*/ %AttName |
master-number |
Возвращает признак NULL/NOT NULL текущего атрибута.
%AttNullOption
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
NULL/NOT NULL
Возвращает физический тип данных текущего атрибута, даже для типов данных, определенных пользователем.
%AttPhysDatatype
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
Тип данных
Пример
Код шаблона |
Результат |
/*Если текущий атрибут master-number, то*/ %AttPhysDatatype |
Int |
Перечисляет все атрибуты сущности (таблицы) для которой создается триггер, выполняя определенную функцию для каждого атрибута.
%Atts(<separator>,<action>,<prefix>)
Область видимости
Триггер
Возвращаемое значение
Список действий и атрибутов
Пример
Код шаблона |
Результат |
%Atts (",", update, %Parent) |
Update (MOVIE_COPY.master_number), Update (MOVIE_COPY.master_copy_number) |
Возвращает название правила проверки (validation name) данного атрибута.
%AttValidation
Область видимости
%ForEachAtt, % ForEachFKAtt
Возвращаемое значение
название правила проверки (validation name).
Пример
Код шаблона |
Результат |
/*Если текущий атрибут due_date, то*/ %AttValidation |
DUE_DATE_RULE |
Возвращает тип отношений:
%Cardinality
Область видимости
RI или Переопределение отношений
Возвращаемое значение
<ничего>, P, Z, <любое целое>
Возвращает физическое имя таблицы дочерней сущности в отношении.
%Child
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имя таблицы.
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %Child |
MOVIE_RENTAL_RECORD |
Перечисляет все атрибуты дочерней сущности в отношении и выполняет над каждым указанные действия.
%ChildAtts(<separator>,<action>, <prefix>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Названия атрибутов и действия.
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildAtts(" or ", update) |
Update (movie_copy_number) or update (master_number) or ... |
Перечисляет внешние ключи дочерней сущности в отношении и выполняет над каждым указанные действия.
%ChildFK(<separator>,<action>,<prefix>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имена атрибутов и действия
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildFK(" or ", update) |
update (master_number) or update (movie_copy_number) |
Перечисляет внешние ключи дочерней сущности в отношении, а затем их типы данных.
%ChildFKDecl (<old prefix>,<new prefix >, <separator>>,<attribute/type separator>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имена атрибутов FK и типы данных
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildFKDecl(,@ins_,", ") |
@ins_master_number int, |
Перечисляет неключевые элементы дочерней сущности и выполняет указанные действия с каждым из них.
%ChildNK(<separator>,<action>,<prefix>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имена неключевых атрибутов и действия
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildNK(" or ", update, @) |
update (@general_condition) |
Перечисляет неключевые элементы дочерней сущности в отношении, а затем их типы данных.
%ChildNKDecl (<old prefix>,<new prefix>, <separator>,<attribute/type separator>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имена неключевых атрибутов и типы данных
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildNKDecl(,@ins_,", ") |
@ins_general_condition varchar(10) |
Перечисляет все атрибуты дочерней сущности в отношении, а затем их типы данных. Это полезно при объявлении параметров хранимых процедур.
%ChildParamDecl (<old prefix>,<new prefix>, <separator>,<attribute/type separator>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имена атрибутов и типы данных
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildParamDecl(,@ins_,", ") |
@ins_master_number int, |
Перечисляет элементы первичного ключа дочерней сущности в отношении и выполняет с каждым указанные действия.
%ChildPK(<separator>,<action>, <prefix>)
Область видимости
RI или Переопределение отношений.
Возвращаемое значение
Неключевые имена атрибутов и действия.
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildPK(" or ", update,@) |
update (@movie_copy_number) or |
Перечисляет первичные ключевые элементы дочерней сущности в отношении, а затем их типы данных.
%ChildPKDecl (<old prefix>,<new prefix>, <separator>, <attribute/type separator>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имена атрибутов PK и типы данных
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ChildPKDecl(,@ins_,", ") |
@ins_master_number int, |
Добавляет <value 2> в конец <value 1>, результатом является объединенная строка.
%Concat(<value1>, <value2>)
Область видимости
Глобально
Возвращаемое значение
Строка
Возвращает имя базы данных, используемой при генерации скрипта (в виде значения вводимого в диалоговом окне Connection <DB>).
%CurrentDatabase
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
/*При генерации на БД "Testdb"*/ %CurrentDatabase |
Testdb |
Возвращает имя ERwin файла, из которого был сгенерирован сценарий.
%CurrentFile
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%CurrentFile |
C:\MYFILES\MOVIES.ER1 |
Возвращает имя целевого сервера, использованного при генерации скрипта (в виде значения вводимого в диалоговом окне Connection <DB>).
%CurrentServer
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%CurrentServer |
SQL6 |
Возвращает имя пользователя, сгенерировавшего скрипта (в виде значения вводимого в диалоговом окне Connection <DB>).
%CurrentUser
Область видимости
Глобально
Возвращаемое значение
Cтрока
Пример
Код шаблона |
Результат |
%CurrentUser |
Ssmith |
Вставляет текст из шаблона триггера в триггер в развернутой форме.
%CustomTriggerDefaultBody
Область видимости
Триггер.
Возвращаемое значение
Содержимое шаблона CustomTriggerDefaultBody.
Вставляет текст из шаблона нижнего колонтитула в триггер в развернутой форме.
%CustomTriggerDefaultFooter
Область видимости
Триггер.
Возвращаемое значение
Содержимое шаблона CustomTriggerDefaultFooter.
Вставляет текст из шаблона заголовка в триггер в развернутой форме.
%CustomTriggerDefaultHeader
Область видимости
Триггер.
Возвращаемое значение
Содержимое шаблона CustomTriggerDefaultHeader.
Возвращает имя типа данных
%DatatypeName()
Область видимости
Глобально
Возвращаемое значение
Тип данных
Пример
Код шаблона |
Результат |
%ForEachAtt(%Tablename,", ") {%DatatypeName(%AttPhysDatatype)} |
Varchar |
Для десятичных типов данных, %DatatypeScale возвращает число десятичных знаков (значение после десятичной запятой).
%DatatypeScale()
Область видимости
Глобально
Возвращаемое значение
Целое
Пример
Код шаблона |
Результат |
/*Например, для decimal(10,2)*/ %DatatypeScale() |
2 |
Возвращает ширину поля описанную в типе данных.
%DatatypeWidth()
Область видимости
Глобально
Возвращаемое значение
Целое
Пример
Код шаблона |
Результат |
/* Например, для decimal(10,2)*/ %DatatypeWidth() |
10 |
Возвращает текущие дату и время.
%Datetime
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%Datetime |
Wed Feb 17 12:56:22 1998 |
Возвращает имя базы данных.
%DBMS
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%DBMS |
ORACLE |
Возвращает оператор разделитель для выбранной СУБД.
%DBMSDelim
Область видимости
Глобально
Возвращаемое значение
, или ; или другой разделитель.
Объявляет <переменную> и, необязательно, инициализирует ее с помощью <initial value>. Например, если вы использовали оператор %Decl(var1,0), то это значит, что объявляется переменная var1, которая инициализируется значением 0. Возвращаемое значение не генерируется.
%Decl(<variable>,<initial value>)
Область видимости
Глобально
Возвращаемое значение
Нет
Пример
Код шаблона |
Результат |
%Decl(var1,0) |
Внутренне, var1 присваивается значение 0. |
Возвращает имя по умолчанию.
%DefaultName
Область видимости
%ForEachDefault
Возвращаемое значение
Имя по умолчанию.
Пример
Код шаблона |
Результат |
%ForEachDefault(", " ){%DefaultName} |
SPACES, PERSON-NAME, ADDRESS |
Возвращает значение по умолчанию.
%DefaultValue(<default name> или %DefaultValue
Область видимости
Глобально (при использовании аргумента - <default name>), либо %ForEachDefault (без аргумента).
Возвращаемое значение
Значение по умолчанию.
Пример
Код шаблона |
Результат |
%ForEachDefault(", " ){%DefaultValue} |
NEW RELEASE, COMEDY, DRAMA, CHILDREN, HORROR |
Возвращает физический тип данных домена.
%DomainDatatype(<domain name>) или %DomainDatatype
Область видимости
Глобально (при использовании аргумента - <domain name>), либо %ForEachDomain.
Возвращаемое значение
Значение домена по умолчанию.
Пример
Код шаблона |
Результат |
%ForEachDomain(", ") {%DomainDatatype} |
varchar(10), int, char |
Возвращает имя, по умолчанию присвоенное домену.
%DomainDef(<domain name>) или %DomainDef
Область видимости
Глобально (при использовании аргумента <domain name>), либо %ForEachDomain.
Возвращаемое значение
Значение домена по умолчанию.
Пример
Код шаблона |
Результат |
%ForEachDomain(", ") { %DomainDef} |
NEW RELEASE |
Возвращает имя домена.
%DomainName
Область видимости
%ForEachDomain
Возвращаемое значение
Имя домена
Пример
Код шаблона |
Результат |
%ForEachDomain{%DomainName} |
PERSON NAME |
Возвращает информацию о том какие NULL атрибуты, будут иметь столбцы созданные с использованием домена <domain name>.
%DomainNullOption (<domain name>) или %DomainNullOption
Область видимости
Глобально (при использовании аргумента <domain name>), либо %ForEachDomain.
Возвращаемое значение
NULL, NOT NULL, IDENTITY, WITH NULL или NOT NULL WITH DEFAULT
Возвращает название правила проверки (validation name) присоединенного к домену.
%DomainValidation(<domain name>) или %DomainValidation
Область видимости
Глобально (при использовании аргумента <domain name>), либо %ForEachDomain.
Возвращаемое значение
название правила проверки.
Пример
Код шаблона |
Результат |
%ForEachDomain {%DomainValidation} |
IS VALID CUSTOMER, |
Возвращает идентификатор сущности или таблицы
%EntityId (<entity or tablename>)
Область видимости
RI, Переопределение отношений или
Триггер
Возвращаемое значение
Целое
Пример
Код шаблона |
Результат |
%EntityId(%Parent) |
1234 |
Возвращает имя сущности или таблицы
%EntityName (<entity or tablename>)
Область видимости
RI, Переопределение отношений или Триггер
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%EntityName(%Parent) |
MOVIE-COPY |
Выполняет программу макроса, заключенного в фигурные скобки и записывает результат в данный файл. Этот макрос предусматривает работу с учетом ограничения Windows 3.х на размер строки в 64 кб.
%File (<filename>){<macro code>}
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%File (C:\erw\myfile.tst) {%ForEachAtt(Parent, ", ") (%AttFieldName ...} |
<создает файл и включает указанную информацию> |
Определяет, когда запускается триггер. Доступно только для INFORMIX, ORACLE7 и Rdb.
%Fire
Область видимости
Триггер.
Возвращаемое значение
BEFORE или AFTER
Пример
Код шаблона |
Результат |
%Fire |
BEFORE |
Раскрывает макрос для каждого атрибута данной таблицы.
%ForEachAtt(<table name>,<separator>) {<macro code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого атрибута данной таблицы.
Пример
Код шаблона |
Результат |
%ForEachAtt(%Parent, ", ") {%AttFieldName} |
master_number, |
Раскрывает <relationship code> (код отношений) для каждого отношения в котором триггерная сущность является дочерней.
%ForEachChildRel(<separator>) {<relationship code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого отношения.
Пример
Код шаблона |
Результат |
%ForEachChildRel("go") {insert %Parent values(%ParentAtts(", ",,@ins_) } |
insert MOVIE_COPY
values(@ins_master_number, @ins_movie_copy_number, @ins_general_condition) |
Раскрывает макрос для всех атрибутов, имеющих default значения.
%ForEachDefault (<separator>) {<macro code>}
Область видимости
Глобально
Возвращаемое значение
Результат <macro code> для всех атрибутов имеющих default значения.
Пример
Код шаблона |
Результат |
%ForEachDefault () {%DefaultName } |
FILL_WITH_SPACES SET_TO_NULL SET_TO_ZERO |
Раскрывает макрос для всех доменов, которые реализованы как пользовательские типы данных.
%ForEachDomain(<separator>){<macro code>}
Область видимости
Глобально
Возвращаемое значение
Результат <macro code>
Пример
Код шаблона |
Результат |
%ForEachDomain(","){%DomainName } |
ADDRESS, PERSON NAME |
Раскрывает макрос для всех сущностей текущей предметной области (subject area).
%ForEachEntity(<separator>) {<macro code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждой сущности.
Пример
Код шаблона |
Результат |
%ForEachEntity() {%TableName} |
MOVIE_COPY MOVIE_RENTAL_RECOR |
Раскрывает макрос для каждого атрибута внешнего ключа.
%ForEachFKAtt(<separator>){<macro code>}
Область видимости
RI или Переопределение отношений.
Возвращаемое значение
Результат <macro code> для каждого атрибута FK.
Пример
Код шаблона |
Результат |
%ForEachFKAtt(", ") {%AttFieldName} |
Master_number, movie_copy_number |
Раскрывает макрос для всех индексов в текущей предметной области. <table> используется по умолчанию для таблицы в текущей области видимости; может использоваться для присвоения имени другой таблице (%Parent, MOVIE_COPY). <type> фильтрует тип индекса (AK, IE, IF, PK, AK1, IE2 и т.д.). По умолчанию для всех.
%ForEachIndex ([<table>],[<type>],[<name>],[<separator>]){<macro code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого индекса
Пример
Код шаблона |
Результат |
%ForEachIndex { %IndexName %IndexType} |
XPKMOVIE_COPY PK |
Раскрывает макрос для всех аттрибутов, входящих в индексы текущей предметной области. <sequence> может использоваться для ввода номера, присвоенного определенному члену индекса. По умолчанию для всех членов.
%ForEachIndexMem ([<sequence>],[<separator>]) {<macro code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого члена индекса.
Пример
Код шаблона |
Результат |
%ForEachIndex {%ForEachIndexMem() {%AddDatatype }} |
int |
Раскрывает макрос для всех альтернативных ключей и неуникальных индексов (IE) в текущей предметной области.
%ForEachKey ([<table>],[<type>],[<separator>]) {<macro code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого ключа.
Пример
Код шаблона |
Результат |
%ForEachKey (%Parent,,,) {%KeyName} |
AK1, |
Раскрывает макрос для всех членов ключа.
%ForEachKeyMem ([<sequence>],[<separator>]) {<macro code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого члена индекса.
Пример
Код шаблона |
Результат |
%ForEachKey {%ForEachKeyMem() {%AttName}} |
renting-customer |
Раскрывает <relationship code> для каждого отношения, где сущность, для которой создаётся триггер, является родительской.
%ForEachParentRel(<separator>){<relationship code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого отношения.
Пример
Код шаблона |
Результат |
%ForEachParentRel () {insert %Parent values (%ParentAtts(",",,@ins_)} |
insert MOVIE_COPY values(@ins_master_number, @ins_movie_copy_number, @ins_general_condition) |
Раскрывает макрос для всех допустимых значений текущего правила (validation).
%ForEachValidValue(<separator>) {<macro code>}
Область видимости
Триггер., %ForEachValidation
Возвращаемое значение
Результат <macro code> для каждого допустимого значения.
Пример
Код шаблона |
Результат |
%ForEachValidValue(","{%ValidValue =>%ValidValueDef } |
N =>New (recent release) |
Раскрывает макрос для всех правил.
%ForEachValidation(<separator>){<macro code>}
Область видимости
Триггер.
Возвращаемое значение
Результат <macro code> для каждого правила.
Пример
Код шаблона |
Результат |
%ForEachValidation () {%Validation Name } |
Due Date Validation |
Условное выполнение %If<macro code1>, если логическое выражение имеет значение "true", либо %Else<macro code2>, если логическое выражение имеет значение "false". Оператор %Else - необязателен.
%If (<predicate>) {<macro code1>} %Else {<macro code2>}
Область видимости
Глобально
Возвращаемое значение
Результат <macro code1> каждый раз, если значение <predicate> = TRUE.
Результат <macro code2> каждый раз, если значение <predicate> = FALSE.
Пример
Код шаблона |
Результат |
%ForEachAtt() { %If(%AttIsPK) {%AttName -> PK}} |
master-number -> PK |
Позволяет вам включить текст макроса при работе с несколькими файлами или шаблонами триггеров.
%Include ("<path name>")
%Include (<trigger template name>)
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%Include("<c:\er\trg.tdl") |
<Все программы, включенные в файл c:\er\trg.tdl> |
Возвращает имя индекса.
%IndexName
Область видимости
Триггер, %ForEachIndex, %ForEachIndexMem
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%IndexName |
XPK_MOVIE_COPY |
Возвращает тип индекса.
%IndexType
Область видимости
Триггер., %ForEachIndex, %ForEachIndexMem
Возвращаемое значение
FK, PK, AK, IE1 и т.д.
Пример
Код шаблона |
Результат |
%IndexType |
PK |
Позволяет произвести соединение по внешнему ключу дочерней сущности и первичному ключу родительской сущности исходя из реляционной связи (Join между FK дочерней и PK родительской сущностей).
%JoinFKPK ([<child table>, <parent table>, <comparison op>,<separator>)
Область видимости
RI или Переопределение отношений, оператор WHERE или JOIN
Возвращаемое значение
Программа, поддерживаемая сравнением значений PK и FK в отношении.
Пример
Код шаблона |
Результат |
%JoinFKPK(%Child,deleted,"<>"," or") |
MOVIE_RENTAL_RECOR.master_number<> deleted.master_number or MOVIE_RENTAL_RECOR.movie_copy_number <> deleted.movie_copy _number |
Позволяет произвести соединение по первичным ключам двух сущностей.
%JoinPKPK (<table>, <correlation>, <comparison op>,<separator>)
Область видимости
RI, Переопределение отношений, Триггер, условный оператор поиска WHERE
Возвращаемое значение
Текст, производящий сравнение значений PK из двух таблиц.
Пример
Код шаблона |
Результат |
%JoinPKPK(%Child,ins,"<>"," or") |
MOVIE_RENTAL_RECOR.renting_customer <> ins.renting_customer or MOVIE_RENTAL_RECOR.master_number <> deleted.master_number or ... |
Возвращает имя ключа.
%KeyName
Область видимости
Триггер., %ForEachKey, % ForEachKeyMem
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%KeyName |
AK1 |
Возвращает длину <macro code>.
%Len(<macro code>)
Область видимости
Глобально
Возвращаемое значение
Целое
Пример
Код шаблона |
Результат |
string1='12345' %Len(%:string1) |
5 |
Преобразует результат <macro code> в нижний регистр.
%Lower (<macro code>}
Область видимости
Глобально
Возвращаемое значение
Строка в нижнем регистре.
Пример
Код шаблона |
Результат |
string1='movie' %Lower(%:string1) |
movie |
Сравнивает <value1> и <value2> и возвращает большее.
%Max(<value1>,<value2>)
Область видимости
Глобально
Возвращаемое значение
Большее значение из сравниваемых.
Пример
Код шаблона |
Результат |
var1=8 var2=5 %Max(var1, var2) |
8 |
Сравнивает <value1> и <value2> и возвращает меньшее.
%Min(<value1>,<value2>)
Область видимости
Глобально
Возвращаемое значение
Меньшее значение из сравниваемых
Пример
Код шаблона |
Результат |
var1=8 var2=5 %Min(var1, var2) |
5 |
Перечисляет все неключевые атрибуты триггерной сущности и выполняет определенные действия с каждым.
%NK (<separator>,<action>,<prefix>)
Область видимости
Триггер.
Возвращаемое значение
Атрибут и действие
Пример
Код шаблона |
Результат |
%NK(" or, update,%Parent) |
update(MOVIE_COPY. general_condition) or... |
Перечисляет неключевые атрибуты триггерной сущности, а затем их типы данных.
%NKDecl(<old prefix>,<new prefix>,<separator>,<attribute/type separator>)
Область видимости
Триггер.
Возвращаемое значение
Имена и типы данных атрибутов
Пример
Код шаблона |
Результат |
%NKDecl(,@ins_,", ") |
@ins_general_condition varchar(10) |
В булевом выражении, определяемом в <macro code>, %Not осуществляет "логическое НЕ". Позволяет комбинировать булевы выражения для создания более сложных выражений.
%Not (<macro code>)
Область видимости
Глобально, %If
Возвращаемое значение
Результат макроса.
Пример
Код шаблона |
Результат |
%ForEachAtt() {%If(%Not(%==(%AttDatatype, int))) {%AttName}} |
general-condition |
Сравнивает внешний ключ дочерней сущности <child table> из отношения с <null expression>. Этот макрос выполняется, только если отношение не определяющее и допустимы null значения.
%NotnullFK(<child table>, <not null expression>,<prefix>,<separator>)
Область видимости
RI или Переопределение отношений, оператор WHERE
Возвращаемое значение
NULL выражение для каждого FK, допускающего нулевые значения.
Пример
Код шаблона |
Результат |
where %NotnullFK(,"is null",," or") |
where master_number is null |
В булевых выражениях, определяемых в <macro code1> и <macro code2>, %Or осуществляет "логическое ИЛИ". Позволяет комбинировать булевы выражения для создания более сложных выражений. Например, %If{%Or(%AttisFK,%AttIsRolenamed)...} позволяет выполнять дополнительные действия, если данный атрибут является внешним ключом или имеет ролевое имя. Макрос выполняется, если любой из элементов имеет значение "TRUE".
%Or (<macro code1>,<macro code2>)
Область видимости
Глобально, %If
Возвращаемое значение
TRUE/FALSE
Пример
Код шаблона |
Результат |
%If(%Or(%AttIsFK,%AttIsRolenamed)) {%AttName} |
master_copy_number |
Перечисляет все атрибуты триггерной сущности, а затем их типы данных.
%ParamDecl(<old prefix>,<new prefix>,<separator>,<attribute/type separator>)
Область видимости
Триггер.
Возвращаемое значение
Атрибуты и типы данных.
Пример
Код шаблона |
Результат |
%ParamDecl(@ins_,", ") |
@ins_master_number int, |
Присваивает значения параметрам процедур, определенным в <old prefix> и/или в <new prefix>, для всех атрибутов триггерной сущности. Доступен только для Ingres.
%ParamDecl(<old prefix>,<new prefix>,<param/value separator>,<param separator>)
Область видимости
Триггер.
Возвращаемое значение
Список параметров для Ingres.
Пример
Код шаблона |
Результат |
%ParamPass(,new," = ") |
master-number = new.master_number |
Возвращает физическое имя таблицы родительской сущности из реляционной связи.
%Parent
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%Parent |
MOVIE_COPY |
Раскрывает любой макрос атрибутов (например, %AttFieldName, %AttDatatype) для первичного родительского ключевого атрибута, от которого мигрировал текущий атрибут.
%ParentAtt(<attribute macro>)
Область видимости
%ForEachAtt, %ForEachFKAtt
Возвращаемое значение
Результат <attribute macro>
Пример
Код шаблона |
Результат |
%ForEachAtt() {%ParentAtt%AttFieldName)} |
master_number |
Перечисляет все атрибуты родительской сущности в отношении, и выполняет с каждым указанные действия.
%ParentAtts(<separator>,<action>,<prefix>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Атрибуты и действия
Пример
Код шаблона |
Результат |
%ParentAtts(" or ",update,%Parent) |
update(MOVIE.master_number) or |
Перечисляет неключевые атрибуты родительской сущности в отношении и выполняет с каждым указанные действия.
%ParentNK(<separator>,<action>,<prefix>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Атрибуты и действия
Пример
Код шаблона |
Результат |
%ParentNK(" or ",update,%Parent) |
update(MOVIE.movie_name) or |
Перечисляет неключевые атрибуты родительской сущности в отношении, а затем - типы данных.
%ParentNKDecl (<old prefix>,<new prefix>,<separator>,<attribute/type separator>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Атрибуты и типы данных FK.
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ParentNKDecl(,@ins_,", ") |
@ins_movie_name varchar(50), |
Перечисляет атрибуты родительской сущности в отношении, а затем - их типы данных.
%ParentParamDecl (<old prefix>,<new prefix>,<separator>,<attribute/type separator>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Атрибуты и типы данных.
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ParentParamDecl(,@ins_,", ") |
@ins_movie_name varchar(50), |
Перечисляет элементы первичного ключа родительской сущности в отношении и выполняет с ними указанные действия.
%ParentPK(<separator>,<action>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Атрибуты первичных ключей и действия.
Пример
Код шаблона |
Результат |
%ParentPK |
Update(MOVIE_COPY.master_number) |
Перечисляет элементы первичного ключа родительской сущности в отношении, а затем - их типы данных.
%ParentPKDecl (<old prefix>,<new prefix>,<separator>,<attribute/type separator>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имена атрибутов первичных ключей и типы данных.
Пример
Код шаблона |
Результат |
/*Если текущее отношение <is in stock as>, то*/ %ParentPKDecl(,@ins_) |
@ins_master_number varchar(10), |
Возвращает физическое имя отношения.
%PhysRelName
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%PhysRelName |
is_rented_under |
Перечисляет элементы первичного ключа триггерной сущности и выполняет с ними указанные действия.
%PK(<separator>,<action>,<prefix>)
Область видимости
Триггер.
Возвращаемое значение
Первичные ключевые атрибуты и действия.
Пример
Код шаблона |
Результат |
%PK(,update,%Parent) |
update(MOVIE_COPY.master_number) |
Перечисляет элементы первичного ключа сущности, а затем - их типы данных.
%PKDecl (<old prefix>,<new prefix>,<separator>>,<attribute/type separator>))
Область видимости
Триггер.
Возвращаемое значение
Имена первичных ключевых атрибутов и типы данных.
Пример
Код шаблона |
Результат |
%PKDecl(,@ins_) |
@ins_master_number varchar(10), |
Создает описание Reference, исходя из информации OLD и NEW, добавленной в Редакторе Триггерного Объекта. Доступен только для INFORMIX, Ingres, ORACLE7 и Rdb.
%RefClause
Область видимости
Триггер.
Возвращаемое значение
Оператор ссылки
Пример
Код шаблона |
Результат |
%RefClause |
REFERENCES NEW as inserted OLD as Deleted |
Возвращает идентификатор отношения.
%RelId
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Целое
Проверяет отношения на наличие нулевых выражений и возвращает "true", если null - недопустим, и "false", если допустим.
%RelIsNonull
Область видимости
RI или Переопределение отношений, %If
Возвращаемое значение
TRUE/FALSE
Возвращает тип отношения ссылочной целостности ( CASCADE, RESTRICT...) для указанного действия <action> (insert, update, delete) и <RI type> (родительский или дочерний).
%RelRI(<action>,<RI type>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
CASCADE, RESTRICT, SET NULL, SET DEFAULT или NONE
Пример
Код шаблона |
Результат |
%RelRI(Update, Child) |
CASCADE |
Раскрывает шаблон, присоединенный к текущему отношению. Если никакой макрос не присвоен, раскрывается шаблон ссылочной целостности диаграммы по умолчанию.
%RelTemplate
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Раскрывает фрагмент программы отношения в соответствии с типом триггера.
Возвращает тип отношения. Допустимые значения типа отношения и их определения включают: RT_ID (определено), RT_NI (не определено), RT_SC (субтип) или RT_MM (многие-ко-многим).
%RelType
Область видимости
RI или Переопределение отношений
Возвращаемое значение
RT_ID, RT_NI, RT_SC или RT_MM
Пример
Код шаблона |
Результат |
%RelType |
RT_ID |
Возвращает определение того, как выполняется триггер. Доступен только для ORACLE7.
%Scope
Область видимости
Триггер.
Возвращаемое значение
FOR EACH ROW или FOR EACH TABLE
Пример
Код шаблона |
Результат |
%Scope |
FOR EACH ROW |
Перечисляет внешние ключевые элементы дочерней сущности в отношении и присваивает каждому члену указанное значение.
%SetFK (<child table>,<value>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имя и значение атрибута внешнего ключа
Пример
Код шаблона |
Результат |
%SetFK(%Child,NULL) |
MOVIE_RENTAL_RECOR.master_number = NULL |
Перечисляет первичные ключевые элементы указанной таблицы и присваивает каждому члену указанное значение.
%SetPK(<table>,<value>)
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Имя и значение атрибута первичного ключа.
Пример
Код шаблона |
Результат |
%SetPK(%Parent,0) |
MOVIE_COPY.master_number = 0 |
Заменяет строку <pattern> в строке <value> строкой <substitute>.
%Substitute(<value>,<pattern>,<substitute>)
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
/*Если имя дочерней таблицы movie_copy_number*/ %Substitute(%Child,movie,ins_movie |
ins_movie_copy_number |
Возвращает подстроку при раскрытии данного <macro code>. <length> (длина) необязательна.
%Substr(<macro code>,<initial pos>,<length>)
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%Substr(macro,1,3) |
Mac |
Сравнивает аргумент с указанной альтернативой. ERwin раскрывает макрос в соответствии с совпавшей альтернативой. Если ни одного совпадения не происходит, ERwin выполняет макрос по умолчанию.
%Switch (<argument>) {%Choose(<choice 1>) {<macro code 1>} %Choose(<choice 2>) {<macro code2>} <etc...> %Default {<default macro code>}}
Область видимости
Глобально
Возвращаемое значение
Значение макроса
Пример
Код шаблона |
Результат |
*/Если %TableName - MOVIE_COPY*/ %Switch (%TableName) {%Choose(MOVIE_COPY) {%FK} %Choose(MOVIE_RENTAL_RECOR){%PK} %Default{%PK}} |
master_number |
Возвращает физическое имя таблицы триггерного объекта.
%TableName
Область видимости
Триггер.
Возвращаемое значение
Имя таблицы
Пример
Код шаблона |
Результат |
%TableName |
MOVIE_COPY |
Возвращает имя шаблона триггера, хранимой процедуры или сценария.
%TemplateName
Область видимости
Триггер.
Возвращаемое значение
Имя шаблона
Пример
Код шаблона |
Результат |
%TemplateName |
CHILD_DELETE_CASCADE |
Возвращает физическое имя триггера.
%TriggerName
Область видимости
Триггер.
Возвращаемое значение
Имя триггера
Пример
Код шаблона |
Результат |
%TriggerName |
MOVIE_COPY_CHILD_DELETE_CASCADE |
Булево выражение, имеющее значение "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
Пример
Код шаблона |
Результат |
%ForEachChildRel() {%If(%TriggerRelRI(Update,Child,Cascade)) {%VerbPhrase Child Update Cascade}} |
is rented under Child Update |
Перечисляет внешние ключевые элементы дочерней сущности в отношении и выполняет обновление с каждым членом. Доступно только для ORACLE7, SQL Server и SYBASE.
%UpdateChildFK()
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Значение и действие внешнего ключа
Пример
Код шаблона |
Результат |
%UpdateChildFK() |
update(master_number) or |
Перечисляет первичные ключевые элементы родительской сущности в отношении и выполняет обновление каждого члена. Доступно только для ORACLE7, SQL Server и SYBASE.
%UpdateParentPK()
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Значение и действие первичного ключа
Пример
Код шаблона |
Результат |
%UpdateParentPK() |
Update(master_number) |
Перечисляет первичные ключевые элементы триггерной сущности и выполняет обновление каждого члена. Доступно только для ORACLE7, SQL Server и SYBASE.
%UpdatePK()
Область видимости
Триггер.
Возвращаемое значение
Значение и действие первичного ключа
Пример
Код шаблона |
Результат |
%UpdatePK() |
Update(master_number) |
Преобразует раскрытый <macro code> в верхний регистр.
%Upper (<macro code>)
Область видимости
Глобально
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%Upper(%EntityName) |
MOVIE COPY |
Булево выражение, позволяющее вам определять, имеет ли текущее допущение корректные значения.
% ValidationHasValidValues(<validation name>)
Область видимости
Глобально (с аргументом <validation name>) или %ForEachValidation, %If
Возвращаемое значение
TRUE/FALSE
Возвращает название правила проверки допустимости.
%ValidationName
Область видимости
%ForEachValidation
Возвращаемое значение
Имя правила проверки допустимости
Пример
Код шаблона |
Результат |
%ValidationName |
Due Date Validation |
Возвращает правило проверки со стороны сервера.
%ValidationRule(<validation name>} или %ValidationRule
Область видимости
Глобально (с аргументом <validation name>) или %ForEachValidation
Возвращаемое значение
Строка правила проверки допустимости
Пример
Код шаблона |
Результат |
%ValidationRule (Valid CustNumber) |
@col BETWEEN 1000 AND 9999 |
Возвращает допустимые значения данных
%ValidValue
Область видимости
%ForEachValidValue
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
%ValidValue |
CHILDREN |
Возвращает определение допустимого значения.
%ValidValueDef
Область видимости
%ForEachValidValue
Возвращаемое значение
Строка
Пример
Код шаблона |
Результат |
/*Если допустимые значения: COMEDY, HORROR, DRAMA, NEW RELEASE и CHILDREN, определение одного из них может быть:*/ %ValidValueDef |
A movie that is of interest to children. |
Возвращает сообщение об отношении.
%VerbPhrase
Область видимости
RI или Переопределение отношений
Возвращаемое значение
Сообщение об отношении
Пример
Код шаблона |
Результат |
%VerbPhrase |
is rented under |
Обсудить на форуме Computer Associates
Отправить ссылку на страницу по e-mail
Interface Ltd.Отправить E-Mail http://www.interface.ru |
|
Ваши замечания и предложения отправляйте автору По техническим вопросам обращайтесь к вебмастеру Документ опубликован: 16.01.01 |