Макроси ERwin, ERwin, Бази даних, статті

Підтримка макросів цільовим сервером

У шаблонах, створюваних для тригерів, збережених процедур, 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


Синтаксис команд макросів 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


Повертає назву дії, яке призвело до активізації тригера. Залежить від змісту команди. % Action повертає значення DELETE, INSERT або UPDATE. Наприклад, якщо тригер активізувався по команді DELETE,% Action поверне значення DELETE.

%Action

Область видимості


Тригер


Значення, що повертається


DELETE, INSERT або UPDATE


Приклад










Код шаблону

Результат

%Action
 

DELETE


%Actions


Повертає список дій, виконаних до або після активізації тригера. Якщо тригер є багатофункціональним (наприклад CREATE TRIGGER trigger_name ON table FOR INSERT, UPDATE, DELETE …), макрос оголошує всі дії.

%Actions(<separator>)

Область видимості


Тригер


Значення, що повертається


DELETE, INSERT та / або UPDATE


Приклад










Код шаблону

Результат

%Actions (“,”)
 

DELETE,DELETE


%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


Значення, що повертається


Тип даних атрибута


Приклад










Код шаблону

Результат

%ForEachAtt ()
{%AttName -> %AttDatatype}

Master-number -> int

Movie-copy-number -> int

General-condition -> varchar(10)


%AttDef


Повертає визначення атрибута

%AttDef

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Визначення атрибута


Приклад










Код шаблону

Результат

 / * Якщо поточний атрибут – master_number, то * /% AttDef
 

Унікальний ідентифікатор фільму


%AttDefault


Повертає ім'я, присвоєне атрибуту за замовчуванням.

%AttDefault

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Ім'я, присвоєне атрибуту за замовчуванням.


Приклад










Код шаблону

Результат

%AttDefault
 

SPACES


%AttDomain


Повертає ім'я домену, присвоєне атрибуту.

%AttDomain

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Ім'я домену


Приклад










Код шаблону

Результат

 / * Якщо поточний атрибут cust_phone, то * /
%AttDomain
 

PHONE NUMBER


%AttFieldName


Повертає ім'я стовпця, пов'язаного з поточним атрибутом.

%AttFieldName

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Ім'я стовпця


Приклад










Код шаблону

Результат

 / * Якщо поточний атрибут renting-customer, то * /
%AttFieldName
 

renting_customer


%AttFieldWidth


Повертає довжину типу даних атрибута

%AttFieldName

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Число


Приклад










Код шаблону

Результат

 / * Для типу даних varchar (50) * /
%AttFieldWidth
 

50


%AttId


Повертає атрибут ID.

%AttId

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Ціле


%AttIsFK


Булев предикат, що дозволяє вам визначати, є поточний атрибут членом зовнішнього ключа чи ні.

%AttIsFK

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


TRUE/FALSE


Приклад










Код шаблону

Результат

%ForEachAtt() {
%If{%AttIsFK}
%AttName}
 

Master-number movie-copy-number


%AttIsRolenamed


Булев предикат, що дозволяє вам визначити, чи має поточний атрибут рольовий ім'я. Додаткова інформація наведена в "% AttIsFK".

%AttIsRolenamed

Область видимості


%ForEachAtt, % ForEachFKAtt, %If


Значення, що повертається


TRUE/FALSE


%AttIsPK


Булев предикат, що дозволяє вам визначити, чи перебуває поточний атрибут в первинному ключі. Додаткова інформація наведена в "% AttIsFK".

%AttIsPK

Область видимості


%ForEachAtt, % ForEachFKAtt, %If


Значення, що повертається


TRUE/FALSE


%AttName


Повертає логічне ім'я поточного атрибута.

%AttName

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Ім'я атрибута


Приклад










Код шаблону

Результат

 / * Якщо поточний атрибут master-number, то * /
%AttName
 

master-number


%AttNullOption


Повертає ознака NULL / NOT NULL поточного атрибута.

%AttNullOption

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


NULL/NOT NULL


%AttPhysDatatype


Повертає фізичний тип даних поточного атрибута, навіть для типів даних, визначених користувачем.

%AttPhysDatatype

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


Тип даних


Приклад










Код шаблону

Результат

 / * Якщо поточний атрибут master-number, то * /
%AttPhysDatatype
 

Int


%Atts


Перераховує всі атрибути сутності (таблиці) для якої створюється тригер, виконуючи певну функцію для кожного атрибута.

%Atts(<separator>,<action>,<prefix>)

Область видимості


Тригер


Значення, що повертається


Список дій і атрибутів


Приклад










Код шаблону

Результат

%Atts (“,”, update, %Parent)
 

Update (MOVIE_COPY.master_number),

Update (MOVIE_COPY.master_copy_number)


%AttValidation


Повертає назву правила перевірки (validation name) даного атрибута.

%AttValidation

Область видимості


%ForEachAtt, % ForEachFKAtt


Значення, що повертається


назва правила перевірки (validation name).


Приклад










Код шаблону

Результат

 / * Якщо поточний атрибут due_date, то * /% AttValidation
 

DUE_DATE_RULE


%Cardinality


Повертає тип відносин:


%Cardinality

Область видимості


RI або Перевизначення відносин


Значення, що повертається


<Нічого>, P, Z, <будь-яке ціле>


%Child


Повертає фізичне ім'я таблиці дочірньої сутності у відношенні.

%Child

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Ім'я таблиці.


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%Child 
 

MOVIE_RENTAL_RECORD


%ChildAtts


Перераховує всі атрибути дочірньої сутності у відношенні і виконує над кожним зазначені дії.

 % ChildAtts (<separator>, <action>, <prefix>)

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Назви атрибутів і дії.


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildAtts(” or “, update)
 

Update (movie_copy_number) or

update (master_number) or


%ChildFK


Перераховує зовнішні ключі дочірньої сутності у відношенні і виконує над кожним зазначені дії.

%ChildFK(<separator>,<action>,<prefix>)

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Імена атрибутів і дії


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildFK(” or “, update)
 

update (master_number) or

update (movie_copy_number)


%ChildFKDecl


Перераховує зовнішні ключі дочірньої сутності в відношенні, а потім їх типи даних.

 % ChildFKDecl (<old prefix>, <new prefix>, <separator>>, <attribute/type separator>)

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Імена атрибутів FK і типи даних


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildFKDecl(,@ins_,”, “)

@ins_master_number int,
@ins_movie_copy_number int


%ChildNK


Перераховує неключові елементи дочірньої сутності і виконує зазначені дії з кожним з них.

%ChildNK(<separator>,<action>,<prefix>)

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Імена неключових атрибутів і дії


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildNK(” or “, update, @)

update (@general_condition)


%ChildNKDecl


Перераховує неключові елементи дочірньої сутності в відношенні, а потім їх типи даних.

 % ChildNKDecl (<old prefix>, <new prefix>, <separator>, <attribute/type separator>)

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Імена неключових атрибутів і типи даних


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildNKDecl(,@ins_,”, “)

@ins_general_condition varchar(10)


%ChildParamDecl


Перераховує всі атрибути дочірньої сутності в відношенні, а потім їх типи даних. Це корисно при оголошенні параметрів збережених процедур.

 % ChildParamDecl (<old prefix>, <new prefix>, <separator>, <attribute/type separator>)

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Імена атрибутів і типи даних


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildParamDecl(,@ins_,”, “)

@ins_master_number int,
@ins_movie_copy_number int, @ins_general_condition
varchar (10),


%ChildFK


Перераховує елементи первинного ключа дочірньої сутності у відношенні і виконує з кожним зазначені дії.

%ChildPK(<separator>,<action>, <prefix>)

Область видимості


RI або Перевизначення відносин.


Значення, що повертається


Неключові імена атрибутів і дії.


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildPK(” or “, update,@)

update (@movie_copy_number) or
update (@master_number)


%ChildPKDecl


Перераховує первинні ключові елементи дочірньої сутності в відношенні, а потім їх типи даних.

 % ChildPKDecl (<old prefix>, <new prefix>, <separator>, <attribute/type separator>)

Область видимості


RI або Перевизначення відносин


Значення, що повертається


Імена атрибутів PK і типи даних


Приклад










Код шаблону

Результат

 / * Якщо поточне ставлення <is in stock as>, то * /
%ChildPKDecl(,@ins_,”, “)

@ins_master_number int,
@ins_movie_copy_number int,


%Concat


Додає <value 2> в кінець <value 1>, результатом є об'єднана рядок.

%Concat(<value1>, <value2>)

Область видимості


Глобально


Значення, що повертається


Рядок


%CurrentDatabase


Повертає ім'я бази даних, яка використовується при генерації скрипта (у вигляді значення вводиться в діалоговому вікні Connection <DB>).

%CurrentDatabase

Область видимості


Глобально


Значення, що повертається


Рядок


Приклад










Код шаблону

Результат

 / * При генерації на БД "Testdb" * /
%CurrentDatabase

Testdb


%CurrentFile


Повертає ім'я ERwin файлу, з якого був згенерований сценарій.

%CurrentFile

Область видимості


Глобально


Значення, що повертається


Рядок


Приклад










Код шаблону

Результат

%CurrentFile
 

C:MYFILESMOVIES.ER1


%CurrentServer


Повертає ім'я цільового сервера, використаного при генерації скрипта (у вигляді значення вводиться в діалоговому вікні Connection <DB>).

%CurrentServer

Область видимості


Глобально


Значення, що повертається


Рядок


Приклад










Код шаблону

Результат

%CurrentServer
 

SQL6


%CurrentUser


Повертає ім'я користувача, згенерованого скрипта (у вигляді значення вводиться в діалоговому вікні Connection <DB>).

%CurrentUser

Область видимості


Глобально


Значення, що повертається


Дані для


Приклад










Код шаблону

Результат

%CurrentUser
 

Ssmith


%CustomTriggerDefaultBody


Вставляє текст з шаблону тригера в тригер в розгорнутій формі.

%CustomTriggerDefaultBody

Область видимості


Тригер.


Значення, що повертається


Вміст шаблона CustomTriggerDefaultBody.


%CustomTriggerDefaultFooter


Вставляє текст з шаблону нижнього колонтитула в тригер в розгорнутій формі.

%CustomTriggerDefaultFooter

Область видимості


Тригер.


Значення, що повертається


Вміст шаблона CustomTriggerDefaultFooter.


%CustomTriggerDefaultHeader


Вставляє текст з шаблону заголовка в тригер в розгорнутій формі.

%CustomTriggerDefaultHeader

Область видимості


Тригер.


Значення, що повертається


Вміст шаблона CustomTriggerDefaultHeader.


%DatatypeName


Повертає ім'я типу даних

%DatatypeName()

Область видимості


Глобально


Значення, що повертається


Тип даних


Приклад










Код шаблону

Результат

 % ForEachAtt (% Tablename, ",") {% DatatypeName (% AttPhysDatatype)}
 

Varchar


%DatatypeScale


Для десяткових типів даних,% DatatypeScale повертає число десяткових знаків (значення після десяткової коми).

%DatatypeScale()

Область видимості


Глобально


Значення, що повертається


Ціле


Приклад










Код шаблону

Результат

 / * Наприклад, для decimal (10,2) * /
%DatatypeScale()

2


%DatatypeWidth


Повертає ширину поля описану в типі даних.

%DatatypeWidth()

Область видимості


Глобально


Значення, що повертається


Ціле


Приклад










Код шаблону

Результат

 / * Наприклад, для decimal (10,2) * /
%DatatypeWidth()

10


%Datetime


Повертає поточні дату і час.

%Datetime

Область видимості


Глобально


Значення, що повертається


Рядок


Приклад










Код шаблону

Результат

%Datetime
 

Wed Feb 17 12:56:22 1998


%DBMS


Повертає ім'я бази даних.

%DBMS

Область видимості


Глобально


Значення, що повертається


Рядок


Приклад










Код шаблону

Результат

%DBMS
 

ORACLE


%DBMSDelim


Повертає оператор роздільник для вибраної СУБД.

%DBMSDelim

Область видимості


Глобально


Значення, що повертається


, Або; або інший роздільник.


%Decl


Оголошує <змінну> та, необов'язково, ініціалізує її за допомогою <initial value>. Наприклад, якщо ви використовували оператор% Decl (var1, 0), то це означає, що оголошується змінна var1, яка ініціалізується значенням 0. Значення, що повертається не генерується.

%Decl(<variable>,<initial value>)

Область видимості


Глобально


Значення, що повертається


Немає


Приклад










Код шаблону

Результат

%Decl(var1,0)
 

Внутрішньо, var1 присвоюється значення 0.


%DefaultName


Повертає ім'я за замовчуванням.

%DefaultName

Область видимості


%ForEachDefault


Значення, що повертається


Ім'я за замовчуванням.


Приклад










Код шаблону

Результат

%ForEachDefault(“, ” ){%DefaultName}
 

SPACES, PERSON-NAME, ADDRESS


%DefaultValue


Повертає значення за замовчуванням.

% DefaultValue (<default name> або% DefaultValue


Область видимості


Глобально (при використанні аргументу – <default name>), або% ForEachDefault (без аргументу).


Значення, що повертається


Значення за замовчуванням.


Приклад










Код шаблону

Результат

%ForEachDefault(“, ” ){%DefaultValue}
 

NEW RELEASE, COMEDY, DRAMA, CHILDREN, HORROR


%DomainDatatype


Повертає фізичний тип даних домену.

 % DomainDatatype (<domain name>) або% DomainDatatype

Область видимості


Глобально (при використанні аргументу – <domain name>), або% ForEachDomain.


Значення, що повертається


Значення домену за замовчуванням.


Приклад










Код шаблону

Результат

%ForEachDomain(“, “) {%DomainDatatype}
 

varchar(10), int, char


%DomainDef


Повертає ім'я, по замовчуванню присвоєне домену.

 % DomainDef (<domain name>) або% DomainDef

Область видимості


Глобально (при використанні аргументу <domain name>), або% ForEachDomain.


Значення, що повертається


Значення домену за замовчуванням.


Приклад










Код шаблону

Результат

%ForEachDomain(“, “) { %DomainDef}
 

NEW RELEASE


%DomainName


Повертає ім'я домену.

%DomainName

Область видимості


%ForEachDomain


Значення, що повертається


Ім'я домену


Приклад










Код шаблону

Результат

%ForEachDomain{%DomainName}
 

PERSON NAME
ADDRESS


%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.


Значення, що повертається


назва правила перевірки.


Приклад










Код шаблону

Результат

%ForEachDomain {%DomainValidation}
 

IS VALID CUSTOMER,
DUE DATE


%EntityId


Повертає ідентифікатор сутності або таблиці

%EntityId (<entity or tablename>)

Область видимості


RI, Перевизначення відносин або

Тригер


Значення, що повертається


Ціле


Приклад










Код шаблону

Результат

%EntityId(%Parent)
 

1234


%EntityName


Повертає ім'я суті або таблиці

%EntityName (<entity or tablename>)

Область видимості


RI, Перевизначення відносин або Тригер


Значення, що повертається


Рядок


Приклад










Код шаблону

Результат

%EntityName(%Parent)
 

MOVIE-COPY


%File


Виконує програму макросу, укладеного у фігурні дужки і записує результат в даний файл. Цей макрос передбачає роботу з урахуванням обмеження Windows 3.х на розмір рядка в 64 кб.

%File (<filename>){<macro code>}

Область видимості


Глобально


Значення, що повертається


Рядок


Приклад










Код шаблону

Результат

%File (C:erwmyfile.tst)
{%ForEachAtt(Parent, “, “) (%AttFieldName …}

<Створює файл і включає зазначену інформацію>


%Fire


Визначає, коли запускається тригер. Доступно тільки для INFORMIX, ORACLE7 і Rdb.

%Fire

Область видимості


Тригер.


Значення, що повертається


BEFORE або AFTER


Приклад










Код шаблону

Результат

%Fire
 

BEFORE


%ForEachAtt


Розкриває макрос для кожного атрибута даної таблиці.

 % ForEachAtt (<table name>, <separator>) {<macro code>}

Область видимості


Тригер.


Значення, що повертається


Результат <macro code> для кожного атрибута даної таблиці.


Приклад










Код шаблону

Результат

%ForEachAtt(%Parent, “, “)
{%AttFieldName}

master_number,
movie_copy_number,
general_condition


%ForEachChildRel


Розкриває <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)
go


%ForEachDefault


Розкриває макрос для всіх атрибутів, що мають default значення.

%ForEachDefault (<separator>) {<macro code>}

Область видимості


Глобально


Значення, що повертається


Результат <macro code> для всіх атрибутів мають default значення.


Приклад










Код шаблону

Результат

%ForEachDefault () {%DefaultName }
 

FILL_WITH_SPACES

SET_TO_NULL

SET_TO_ZERO


%ForEachDomain


Розкриває макрос для всіх доменів, які реалізовані як для користувача типи даних.

%ForEachDomain(<separator>){<macro code>}

Область видимості


Глобально


Значення, що повертається


Результат <macro code>


Приклад










Код шаблону

Результат

%ForEachDomain(“,”){%DomainName }
 

ADDRESS, PERSON NAME


%ForEachEntity


Розкриває макрос для всіх сутностей поточної предметної області (subject area).

%ForEachEntity(<separator>) {<macro code>}

Область видимості


Тригер.


Значення, що повертається


Результат <macro code> для кожної сутності.


Приклад










Код шаблону

Результат

%ForEachEntity() {%TableName}
 

MOVIE_COPY

MOVIE_RENTAL_RECOR


%ForEachFKAtt


Розкриває макрос для кожного атрибута зовнішнього ключа.

%ForEachFKAtt(<separator>){<macro code>}

Область видимості


RI або Перевизначення відносин.


Значення, що повертається


Результат <macro code> для кожного атрибута FK.


Приклад










Код шаблону

Результат

%ForEachFKAtt(“, “)
{%AttFieldName}

Master_number, movie_copy_number


%ForEachIndex


Розкриває макрос для всіх індексів у поточній предметної області. <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


%ForEachIndexMem


Розкриває макрос для всіх атрибутів, що входять в індекси поточної предметної області. <sequence> може використовуватися для введення номера, присвоєного певному члену індексу. За замовчуванням для всіх членів.

 % ForEachIndexMem ([<sequence>], [<separator>]) {<macro code>}

Область видимості


Тригер.


Значення, що повертається


Результат <macro code> для кожного члена індексу.


Приклад










Код шаблону

Результат

%ForEachIndex {%ForEachIndexMem() {%AddDatatype }}
 

int
int
varchar (10)


%ForEachKey


Розкриває макрос для всіх альтернативних ключів та неунікальний індексів (IE) у поточній предметної області.

 % ForEachKey ([<table>], [<type>], [<separator>]) {<macro code>}

Область видимості


Тригер.


Значення, що повертається


Результат <macro code> для кожного ключа.


Приклад










Код шаблону

Результат

%ForEachKey (%Parent,,,) {%KeyName}
 

AK1,
IE1


%ForEachKeyMem


Розкриває макрос для всіх членів ключа.

 % ForEachKeyMem ([<sequence>], [<separator>]) {<macro code>}

Область видимості


Тригер.


Значення, що повертається


Результат <macro code> для кожного члена індексу.


Приклад







Код шаблону

Резул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*