ОПЕРАТОР ВЕТВЛЕНИЯ
ОПЕРАТОР ВЫЗОВА ПРОЦЕДУРЫ
Оператор осуществляет вызов хранимой процедуры. Применяется в хранимых процедурах и триггерах.
Синтаксис:
EXECUTE PROCEDURE name [LIST_: param] [RETURNING_VALUES LIST_:param];
name – имя вызываемой процедуры. Сама процедура должна быть предварительно создана в базе командой CREATE PROCEDURE.
LIST_: param::=:param [, LIST_: param], заданный после имени процедуры name – это список входных параметров процедуры (если процедура не требует параметров, то может отсутствовать). Отдельные параметры могут быть константами или переменными. Перед именем переменной ставится «:», кроме случаев использования контекстных переменных NEW и OLD.
LIST_:param, заданный после RETURNING_VALUES – список возвращаемых процедурой значений (если процедура возвращает значения). Перед именем возвращаемых значений ставится «:». В триггерах и процедурах использование вызовов других процедур аналогично использованию подпрограмм в традиционных алгоритмических языках.
Замечание. При вызове из ISQL или прикладных программ на базовых языках синтаксис вызова отличается от приведенного.
Оператор ветвления IF... THEN... ELSE обеспечивает выполнение того или иного действия в зависимости от истинности проверяемого условия.
Синтаксис:
IF (<condition>) THEN <compound_statement> [ELSE <compound_statement>]
<compound_statement>::= {< block> | statement;} (см. выше)
<condition> – выражение, которое может принимать значение истина или ложь.
Если условие выполнено (значение TRUE), то выполняется оператор, следующий за конструкцией THEN, иначе выполняется оператор, следующий за конструкцией ELSE, если она присутствует.
Например:
IF (a<0) THEN
b = -а; ELSE
b = а;
Цикл FOR обеспечивает выполнение заданного оператора для каждой строки команды SELECT. Цикл FOR может использоваться в хранимых процедурах и триггерах.
Синтаксис:
FOR
< select_expr> DO
< compound_statement>
FOR SELECT – инструкция цикла, которая отыскивает строку, указанную в <select_expr> и для каждой строки исполняет оператор или блок, указанный после ключевого слова DO.
Конструкция <select_expr> представляет собой обычную команду SELECT, к которой добавлена обязательная здесь опция INTO и которая должна быть последней опцией команды SELECT.
В опции INTO перечисляются имена локальных переменных или параметров процедуры, которым присваиваются соответствующие значения выбранных командой SELECT столбцов. Имена переменных должны предваряться символом":".
В качестве примера возьмем фрагмент процедуры PAUTHOR.
FOR SELECT AUTHOR, AUNAME FROM TAUTHOR
INTO:AUTHOR,:AUNAME DO
IF(AUNAME>P1) THEN IF(AUNAME<P2) THEN SUSPEND;
Здесь оператор SUSPEND обеспечивает передачу вызывающему приложению данных, удовлетворяющих дополнительному условию.