|
Приложение F Т Р И Г Г Е Р Ы V2
Триггеры V2 являются триггерами SQL*Forms, определенными в типе триггеров
V2. Триггер V2 состоит из одного или более шагов. Каждый шаг триггера
состоит из одиночной команды и характеристик, определяющих какой шаг
выполняется.
В данном приложении представлена информация о шагах триггера. Представлены
следующие темы:
- определение шагов триггера
- характеристики шага триггера
- команды в шагах триггера
- функциональные коды V2
- оператор CASE
- переменные в шагах триггера
- процессирование триггера V2
Если вы пользуетесь только триггерами V3, это приложение вам не нужно.
Замечание: Корпорация Oracle настоятельно рекомендует пользоваться при
проектировании прикладных программ триггерами V3.
Аналоги: Версии триггеров V2 и V3 4-2
Определение триггеров V2
Вы можете создавать и модифицировать триггеры V2 также как и триггеры V3,
используя форму Trigger Definiyion и таблицу расширений (spread table)
Trigger Definition в интерфейсе SQL*Forms. Однако, чтобы определить триггер
V2, вы также должны определить шаги триггера через форму Trigger Step
Definition или таблицу расширений Trigger Step Definition.
aналоги: Определение триггеров 14-2
Форма Форма Trigger Step Definition является элементом
Trigger интерфейса SQL*Forms (Проектирование) в котором вы
Step создаете, модифицируете или уничтожаете шаги триггеров.
Definition Эта форма позволяет вам сразу видеть всю информацию
Form о шаге триггера.
Замечание: Если вы хотите иметь информацию о нескольких
шагах триггера сразу, используйте таблицу расширения
Trigger Step Definition.
Рис. 1 Ъ--------------------------------------------------------------ї
Форма і Action Form Block Field Trigger Procedure Image Help Option і
Trigger і -------------- Trigger Step Deffinition ------------------Д і
Step і Ъ--------------------------------------------------------Дї і
Defini- і і Step Number: 1 і--Step Attributes-- і і
tion і і і і і
і і Label: STEP1 і[ ] Abort on Failure і і
і і --Success/Failure Labels-- і[ ] Reverse Return Code і і
і і Success: STEP3 і[ ] Succeed on Abort і і
і і Failure: STEP2 і[ ] Separate Cursor Area і і
і Г----------------------------Б----------------------------ґ і
і і Failure Messages: і і
і Г--------------------------------------------------------Дґ і
і і -------------- Trigger Step Text -------------------- і і
-- 91 --
і і і і
і і SEXDMACRO PRUREC: і і
і Г--------------------------------------------------------Ді і
і і ------------------ Comment -------------------------- і і
і і Navigate to the previous record. і і
і А--------------------------------------------------------ДЩ і
і Enter the sequence number for trigger step. і
і Frm: ORDER_EMIR BIR: ORDERS Fld: ORDID Try: KEY-MXIFLD і
А--------------------------------------------------------------Щ
Вы можете войти в форму Trigger Step Definition из формы Trigger Definition
или таблицы расширений Trigger Definition. Текущая запись также должна
соответствовать триггеру, имеющему V2 характеристику триггера Trigger Style.
Чтобы выйти в форму Trigger Step Definition из таблицы расширений или формы
Trigger Definition, нажмите [Zoom In]. Если таблица расширений
отображается, нажмите [Change Display Type].
Таблица Таблица расширений Trigger Step Definition является
расширений элементом интерфейса SQL*Forms (Проектирование), где вы
Trigger создаете, модифицируете или уничтожаете шаги триггеров.
Step Эта таблица позволяет вам получить информацию о
Definition нескольких шагах триггера одновременно. Помните, что все
элементы этой таблицы не появляются одновременно.
Замечание: Если вы хотите получить всю информацию о поле,
одновременно, используйте форму Trigger Step Definition.
На рис.2 дана часть таблицы расширений Trigger Step Definition.
Рис. F-2
Ъ--------------------------------------------------------------ї
і Action Form Block Field Trigger Procedure Image Help Options і
і ------------------Д Trigger Step Definition ---------------- і
і Ъ--В------В--------В----------В----------В------------ДВ--Дї і
і Г--ґ Step і і Success і Failure і Abort і R і і
і і і Num і Label і Label і Label і on Fail і і і
і і Г------Е--------Е----------Е----------Е------------ДЕ--Дґ і
і і і і і і і і і і
і і і : і STEP1 і STEP3 і STEP2 і [ ] і і і
і і і 2 і STEP2 і і і і і і
і і і 3 і STEP3 і і і і і і
і і і і і і і і і і
і Г--ґ і і і і і і і
і Г--Е--В--ДБ--------Б----------Б----------Б------------ДЕ--Дґ і
і і і і і і і
і А--Б--Б------------------------------------------------Б--ДЩ і
і і
і Enter the sequence number for the trigger step. і
і Frm: ORDER_ENTER Blk: ORDID Trg: KEY-PRYFLD і
і і
А--------------------------------------------------------------Щ
Вы можете войти в таблицу расширений Trigger Step Definition только из
формы Trigger Definition или из таблицы расширений Trigger Definition.
Текущая запись должна соответствовать триггеру, имеющему характеристику V2
триггера Trigger Style.
-- 92 --
Чтобы попасть в таблицу расширений Trigger Step Definition из таблицы
расширений Trigger Definition, нажмите [Zoom In]. Если форма Trigger Step
Definition отображается, нажмите [Change Display Type].
Характеристики шага триггера
Процесс определения шага триггера состоит из установления характеристики для
каждого шага триггера. В эти характеристики входит следующее:
- базисная информация, включчающая в себя номер шага внутри триггера
- действие шага
В этом разделе представлены характеристики шага триггера в алфавитном порядке.
Помните, что имена характеристик шага триггера полностью соответствуют именам
элементов формы Trigger Step Definition и именам в таблице расширений
Trigger Step Definition. Например, поле Step Number в форме Trigger Step
Definition является элементом, определяющим характеристику шага триггера
Step Number.
Замечание: Полные имена характеристик шага триггера иногда сокращаются в
интерфейсе SQL*Forms (Проектирование). В этом разделе после полных
имен в скобках даются сокращенные (например, Step Number (Step Num)).
Вы присваиваете характеристикушагу триггера в числе элементов интерфейса
одним из способов:
Элемент интерфейса Для присвоения характеристики поля
--------------------------------------------------------
контрольный блок включите или выключите характеристику
поле введите в значение
участок прокрутки введите значение
Вы должны знать эти различия в присвоении, поскольку они могут повлиять на
описание характеристик. Например, характеристика, присвоенная из контрольного
блока имеет описание для Default Setting (либо включить, либо выключить). А
характеристика, присвоенная из поля, может иметь описание Required/Optional,
показывая, должны ли вы заполнить этот элемент поля, определяя шаг триггера.
Аналоги: Элементы интерфейса 5-1
Abort on Характеристика шага триггера Abort on Failure показывает,
Failure что если шаг триггера выдает "неуспех", то SQL*Forms
(Abort on выполняет аварийное завершение триггера, содержащего
Fail) этот шаг.
Если вы специфицировали уровень "неуспеха" для шага (т.е. определили характе-
ристику шага триггера Failure), триггер переходит в указанный шаг и не
выполняет аврийное завершение. В конечном счете характеристика шага
триггера Reverse Return Code определяет успех или неуспех шага триггера
(или всего триггера).
Замечание: Если вы хотите использовать характеристику для аварийного
завершения именного пользовательского триггера и триггера вызвавшего его, вы
должны определить характеристику для обоих триггеров. Если вы определили
характеристику только для именного триггера пользователя, вызывающий триггер
не будет иметь аварийного завершения в случае неуспеха.
Установка по умолчанию: on
-- 93 --
Аналоги: Характеристика шага триггера Failure Label F-5
Характеристика шага триггера Reverse Return Code F-7
Comment Характеристика шага триггера Comment определяет общую
информацию о шаге триггера. Эта характеристика - ваш
инструмент для объяснения цели или характеристики шага триггера.
Это свойство может быть особо полезным как для дизайнера,
использующего ваши объекты или прикладные программы, так и
для вас, когда вы отлаживаете ваши прикладные программы.
Required/Optional: optional
----------
Failure Характеристика шага триггера Failure Label специфицирует
Label другие шаги триггера, к которым SQL*Forms переходит при
(Failure) "неуспехе" текущего шага. Величина характеристики
Failure Label должна быть сопоставима с величиной
характеристики Label конечного шага триггера.
Замечание: Характеристика Reverse Return Code в конечном счете
определяет успех или неуспех шага триггера (или всего
триггера).
Аналоги: Характеристика шага триггера Label F-6
Характеристикашага триггера Reverse Return Code F-7
Success/Failure алгоритм в триггерах V2 F-43
Сообщение Характеристика шага триггера Failure Message определяет
о "неуспехе" сообщение, которое появляется в строке сообщений, когда
шаг триггера выдает неуспех.
Аналоги: Работа триггера V2 F-41
Label Характеристика шага триггера Label указывает на имя, которое
SQL*Forms использует для идентификации шага триггера. Это
имя не должно содержать пробелов и должно соответствовать
общепринятым обозначениям.
Эта характеристика может быть полезна, только если триггер,
которому принадлежит данный шаг, использует характеристику для
перехода в шаг.
Два шага, принадлежащие одному триггеру, не могут иметь
одинаковую характеристику Label.
Аналоги: Характеристика шага триггера Failure Label F-5
Характеристика шага триггера Success Label F-8
New Cursor Характеристика шага триггере New Cursor Area гарантирует,
Area (New что шагу триггера, содержащему оператор SQL присвоен
Cursor) отдельный курсор.
По умолчанию, SQL*Forms присваивает каждому шагу триггера отдель
ный курсор. Эта характеристика обеспечивает присвоение каждому
шагу триггера отдельный курсор, даже если вы выполняете форму
с помощью -o переключателя или рабочей опции Share Cursors
for Trigger SQL, что заставляет SQL*Forms заново использовать
или объединять курсоры для всех операторов SQL в триггерах V2.
Установка по умолчанию: off
-- 94 --
Аналоги: Курсор, база данных 22-3 -o переключатели, SQL*Forms
(Текущая форма) 23-18
Рабочая опция Share Cursors for Trigger SQL 26-4
Reverse Характеристика шага триггера Reverse Return Code
Return показывает, что SQL*Forms поменять статус успех/неуспех
Code на обратный. Например, если шаг триггера выдал неуспех,
(Reverse и в работе находится характеристика Reverse Return Code,
Return) SQL*Forms считает этот шаг успешным.
Характеристика Reverse Return Code не оказывает никакого
влияния, если шаг триггера вызвал фатальную ошибку.
Установка по умолчанию: off
Аналоги: Шаги триггеров F-41
Step Number Характеристика шага триггера Step Number указывает на
(Step Num) порядковый номер шага в триггере, т.е. порядок,
в котором SQL*Forms выполняет шаги триггера.
В случае выполнения вами одного из следующих заданий,
SQL*Forms перенумеровывает все остальные шаги триггера:
- присвоение порядкового номера шагу триггера, который
уже принадлежит другому шагу триггера
- удаление шага триггера, не являющегося последним
шагом в триггере
- вставка нового шага триггера в форму Trigger Step
Definition или в таблицу расширений
Нумерация шагов триггеров должна быть непрерывной. Вы не можете иметь
триггер с четырьмя шагами, номера которых 1,2,3 и 5.
Значение по умолчанию: По умолчанию значение характеристики Step Number
самое большое в триггере.
Succeed Характеристика шага триггера Succeed On Abort показывает,
On Abort что выполнение шага триггера вызовет триггер, имеющий
его для аврийного завершения, а SQL*Forms будет
продолжать выполнение триггера.
Эта характеристика имеет смысл, только если вы также включите для шага
характеристику шага триггера Abort On Failure. Когда обе характеристики
включены и шаг триггера выдал неуспех, SQL*Forms останавливает
выполнение данного триггера и помечает триггер, как успешный и продолжает
процессирование.
Установка по умолчанию: off
Аналоги: Характеристика шага триггера Abort On Failure F-5
Success Характеристика шага триггера Success Label специфицирует
Label следующий шаг триггера, к которому SQL*Forms переходит
(Success) при успехе предыдущего шага. Значение характеристики
Success Label должно быть сопоставимо со значением
характеристики Label конечного шага триггера.
-- 95 --
Замечание: Характеристика Reverse Return Code в конечном счете
определяет успех или неуспех шага триггера (или всего
триггера).
Аналоги: Характеристика шага триггера Label F-6
Характеристикашага триггера Reverse Return Code F-7
Success/Failure алгоритм в триггерах V2 F-43
Trigger Характеристика шага триггера Trigger Step Text определяет
Step Text команду SQL или SQL*Forms, которая выполняется при
запуске шага триггера.
Команды в шагах триггеров
Существует три типа команд, с помощью которых вы можете войти в шаги триггеров:
- Команды SQL
- Команды SQL*Forms
- Вызов пользовательского выхода
Когда вы определяете шаг триггера, вводите эти команды прямо в участок
прокрутки Trigger Step Text формы Trigger Step Definition.
Команды SQL Команды SQL, применяемые в шагах триггера, идентичны
в шагах командам SQL, к оторые используются в триггерах V3.
триггера Однако существуют некоторые специфические правила только
для шагаов триггера. Эти правила позволяют командам SQL
работать с объектами SQL*Forms.
В шагах триггера нельзя оканчивать команды SQL точкой с
запятой.
Поля В командах SQL обращайтесь к полям SQL*Forms по именам,
SQL*Forms определенным в проективном интерфейсе или по именам
в SQL переменных. Перед именем должно стоять двоеточие (:).
:[block.]field
:GLOBAL.variablename
Используйте уточненное имя (т.е. block.field), когда вы ссылаетесь на поле, имя
которого не является уникальным в текущей форме. Если это не выполнено, при
запуске триггера возникает ошибка.
Замечание: Для совместимости с формами, созданными с помощью более
ранних версий SQL*Forms, вы можете использовать вместо двоеточия
символ &. Однако, корпорация Oracle рекомендует вам использовать двоеточие.
Фраза Into Для считывания значения со столбца базы данных в поле
в Select SQL*Forms, используйте оператор SQLSELECT с фразой INTO. Такой
оператор выбирает одну строку из базы данных, независимо от
того, какое количество строк удовлетворяет условиям оператора
SELECT.
Синтаксис для фразы INTO:
INTO [:] [block.] field[, [:] [block.] field...]
Эта фраза всегда появляется между ключевым словом SELECT и фразой FROM.
Например:
SELECT NAME
-- 96 --
INTO :ORDERS.NAME
FROM CLIENT
WHERE CLIENT.CLIENTID = :ORDERS.ORDID
Если оператор SELECT отбирает значения более чем в одно поле, то порядок
соответствующих имен столбцов и имен полей должен быть тем же самым.
Например:
SELECT NAME, CREDIT_LIMIT
INTO :ORDERS.NAME, :ORDERS.CREDIT_LIMIT
FROM CLIENT
WHERE CLIENT.CLIENTID = :ORDERS.ORDERID
Замечание: Для совместимости с формами, созданными с помощью более
ранних версий SQL*Forms, вы можете использовать вместо двоеточия
символ &. Однако, корпорация Oracle рекомендует вам использовать двоеточие.
Команды Команды SQL*Forms - это команды, которые вы можете
SQL*Forms использовать только в триггерах V2 SQL*Forms. Эти
в шагах команды обеспечивают шаги триггера средствами для
триггера выполнения важных функций.
Таких команд четыре:
- #COPY
- #ERASE
- #EXEMACRO
- #HOST
Комада #COPY Синтаксис: #COPY sourse [INTO] destination где:
sourse Определяет (value) значение
destination Определяет (variable) переменную
За более подробной информацией о value и variable, обращайтесь к "V2
Function Code Arguments".
Описание: Команда #COPY копирует исходное значение по месту назначения.
Исходное значение может быть константой, значением поля, глобальной
переменной, системной переменной; местом назначения может быть поле,
системная переменная или глобальная переменная.
Команда #СOPY и функциональный код V2, COPY - выполняют одни и те же функции.
Команда Синтаксис: #ERASE GLOBAL.variablename
#ERASE
Описание: Команда #ERASE удаляет названную глобальную перемен-
ную таким образом, что она перестает существовать. Если вы
попытаетесь удалить неназначенную глобольную переменную,
SQL*Forms игнорирует команду #ERASE.
Команда #ERASE и функциональный код V2, ERASE выполняют
одни и те же функции.
Команда Синтаксис: #EXEMACRO statement [statement...]
#EXEMACRO
где: statement является функциональным кодом V2 SQL*Forms
или командой CASE.
-- 97 --
Описание: Команда #EXEMACRO выполняет идентифицированные
функциональные коды, операторы CASE или их комбинацию.
Аналоги: Операторы CASE F-38
Функциональные коды V2 F-12
Команда Синтаксис: #HOST system_command
#HOST
Описание: Команда #HOST выполняет команды операционной
системы.
За более подробной информацией о system_command,
обращайтесь к "V2 Function Code Arguments".
Вызов Пользовательские выходы в шагах триггера выполняются
пользова- также, как и в триггерах V3. Однако, синтаксис здесь
тельского применяется другой.
выхода
Синтаксис: # [#] exitname parameters где:
exitname Cпецифицирует имя вызываемого вами
пользовательского выхода.
parameters Cпецифицирует параметры, которые вы хотите
передать на пользовательский вход.
Аналоги: Пользовательские выходы 19-1
Функциональные коды V2
В данном разделе функциональные коды SQL*Forms V2 даны в алфавитном порядке.
Здесь также представлены синтаксис и описание для каждого функционального
кода.
Замечание: Если вы используете предыдущие версии SQL*Forms, то вы
должны ссылаться на функциональный код V2, как на макрос.
Аналоги: Команда #EXEMACRO F-11
Cопоставление функциональных кодов V2 c V3 эквивалентами F-36
Новые Функциональне коды представлены в документах таким
функцио- образом, что вы можете сохранить прикладные программы,
нальные созданные в предыдущих версиях SQL*Forms. В данном
коды V2 разделе представлены функциональные коды, которых нет
в предыдущих версиях:
ANCHORVIEW LASTREC
BREAK MOVEVIEW
CLREOL POST
DISPLAY REPLACEMENU
EDITFIELD RESIZEVIEW
FIRSTREC SET
GOREC SHOWMENU
HIDEMENU SHOWPAGE
HIDEPAGE
Вы можете использоватьэти новые функциональные коды для доплнения ваших
прикладных прогшрамм возможностями, имеющимися в версии 3.0.
-- 98 --
Параметры Для краткости, некоторые параметры функциональных кодов
функцио- появляются в сокращенной форме. Для справки об этих
нальных сокращениях обращайтесь к следующей таблице:
Параметр Определение
--------------------------------------------------------
field {fieldname і blockname.fieldname}
message value
system_command {'command_string' і field і
variable_reference}
'text' Длина любой строки не более 78 символов.
Если вы хотите использовать один апостроф (')
в тексте сообщения, используйте два таких знака
в строке (например, 'Record isn''t available').
value {'text' і variable}
variable {[:] field і [:] GLOBAL.variablename і
[:] SYSTEM.variablename і
variable_reference}
variable_ & variable
reference
Конкате- Любой функциональный код V2, принмающий значение, как
нация параметр, может выражать конкатенацию (операция
параметров объединния двух последовательностей в одну) нескольких
функцио- значений. Чтобы конкатенировать значения, используйте
нального следующий синтаксис:
кода V2
expression = value[ іі value]...
Например, следующий оператор записывает сообщение на
экране и отображает значение поля:
#EXEMACRO MESSAGE ' The field value ' іі :ordid іі is too small.';
ABTQRY Синтаксис: ABTQRY;
Описание: ABTQRY выполняет аварийное завершение запроса, если он открыт в
текущем блоке.
ANCHORVIEW
Синтаксис: ANCHORVIEW page_number x_coordinate y_coordinate;
где:
page_number Специфицирует дискретный номер страницы в текущей форме, из
которой состоит представление.
x_coordinate Определяет на экране x координату той точки, где вы хотите
поместить левый верхний угол представления.
y_coordinate Определяет на экране y координату той точки, где вы хотите
поместить левый верхний угол представления.
Описание: ANCHORVIEW сдвигает представление страницы в другое положение.
-- 99 --
Замечание:
- Нельзя сдвигать представление таким образом, чтобы часть его
оказалась за пределами экрана.
- Вы можете использовать ANCHORVIEW только для всплывающих страниц.
Аналоги: Страницы, характеристики 10-4
Всплывающие страницы 13-5
Функциональные коды V2, MOVEVIEW F-27
BELL Синтаксис: BELL;
Описание: После синхронизации подается звуковой сигнал.
BREAK Синтаксис: BREAK;
Описание: Если текущая форма работает в режиме отладки,
BREAK останавливает выполнение формы и
отображает меню Debug Mode Options. В других
режимах BREAK не выполняет никаких действий.
Аналоги: Средства отладки 28-1
CALL Синтаксис: CALL formname [ { HIDE і NO_HIDE }
NO_REPLACE ]];
Описание: CALL выполняет идентифицированную форму, в то время как
"родительская" (parent) форма остается активной. SQL*Forms выполняет
вызываемую форму с помощью тех же опций, что и родительскую. Когда
вызываемая форма завершается через функцию EXIT или в результате
неуспеха перемещения, процессирование продолжается в родительской форме
с момента появления CALL.
По умолчанию, CALL использует ключевые слова HIDE и NO_REPLACE. Ключевое
слово HIDE заставляет SQL*Forms очистить вызываемую форму с экрана перед
составлением вызываемой формы. SQL*Forms не производит этого действия, если
вы использовали ключевое слово NO_HIDE. Это означает, что, если вы
вызываете форму с помощью NO_HIDE, и некоторые страницы вызываемой формы
меньше, чем экран, то вызываемая форма отображается на заднем плане.
Ключевое слово NO_REPLACE заставляет SQL*Forms сохранять по умолчанию меню
прикладных программ вызываемой формы.
Когда вы вызываете форму, SQL*Forms запршивает точку сохранения о вызываемой
форме. Если функция CLEAR_FORM приводит к прокрутке назад, когда вызываемая
форма является текущей, SQL*Forms выполняет прокрутку назад несвязанных
(uncommited) этой точки.
Аналоги: Характеристика формы Default Menu
Application 9-3
Характеристика страницы Page Size 10-6
Точка сохранения 3-18
CALLINPUT Синтаксис: CALLINPUT;
Описание: CALLINPUT принимает и работает с введенным функциональным
ключом. Когда CALLINPUT отображается через функцию EXIT или в результате
неудачи перемещения, процессирование продолжается в точке появления
CALLINPUT.
-- 100 --
Замечание: CALLINPUT включен в SQL*Forms 3.0 для сравнения с предыдущими
версиями. Корпорация Oracle не рекомендует вам использовать функциональные
коды V2 в новых прикладных программах.
CALLQRY Синтаксис: CALLQRY formname [{1HIDE0 і NO_HIDE}
[ REPLACE і1 NO_REPLACE0]];
Описание: CALLQRY выполняет указанную форму, в то время как родительская
остается в активном состоянии.SQL*Forms выполняет вызываемую форму с теми
же опциями, что и родительскую форму и форму только-запрос (query-only).
Когда вызываемая форма вводится через функцию EXIT или в результате неудачи
перемещения, процессирование продолжается в точке появления CALLQRY.
По умолчанию, CALL использует ключевые слова HIDE и NO_REPLACE. Ключевое
слово HIDE заставляет SQL*Forms очистить вызываемую форму с экрана перед
составлением вызываемой формы. SQL*Forms не производит этого действия, если
вы использовали ключевое слово NO_HIDE. Это означает, что, если вы
вызываете форму с помощью NO_HIDE, и некоторые страницы вызываемой формы
меньше, чем экран, то вызываемая форма отображается на заднем плане.
Ключевое слово NO_REPLACE заставляет SQL*Forms сохранять по умолчанию меню
прикладных программ вызываемой формы. Если вы использовали ключевое слово
REPLACE, SQL*Forms заменяет меню по умолчанию прикладной программы
вызываемой формы на меню по умолчанию прикладной программы вызванной
формы.
Когда вы вызываете форму, SQL*Forms запршивает точку сохранения о вызываемой
форме. Если функция CLEAR_FORM приводит к прокрутке назад, когда вызываемая
форма является текущей, SQL*Forms выполняет прокрутку назад несвязанных
(uncommited) этой точки.
Аналоги: Характеристика формы Default Menu
Application 9-3
Характеристика страницы Page Size 10-6
Точки сохранения 3-18
CHRMODE Синтаксис: CHRMODE;
----------
Описание: CHRMODE включает режим печати. Если форма в данный момент
работает в режиме вставки, то CHRMODE помещает форму в режим замены. А если
форма в данный момент работает в режиме замены, то CHRMODE помещает форму
в режим вставки.
CLRBLK Синтаксис: CLRBLK [ASK_COMMIT0] і DO_COMMIT і
NO_OMMIT і NO_VALIDATE];
----------
Описание: CLRBLK включает мигание текущего блока. Если в текущем
блоке есть изменения, которые не были переданы или связаны
(committed), то поведение CLRBLK зависит от применяемого вами
ключевого слова.
no keywords SQL*Forms предлагает оператору связать изменения во время
работы CLRBLK.
ASK_COMMIT SQL*Forms предлагает оператору связать изменения во время
работы CLRBLK.
-- 101 --
DO_COMMIT SQL*Forms аттестует изменения и включает мигание текущей
формы без обращения к оператору.
NO_COMMIT SQL*Forms аттестует изменения и включает мигание текущей
формы без обращения к оператору.
NO_VALIDATE SQL*Forms включает мигание текущей формы без аттестации
изменений, связывания изменений или обращения к оператору.
CLREOL Синтаксис: CLREOL;
----------
Описание: CLREOL сбрасывает значение текущего поля в текущей позиции
курсора до конца строки или поля.
CLRFLD Синтаксис: CLRFLD;
----------
Описание: CLRFLD сбрасывает целое значение текущего поля - несмотря на
текущую позицию курсора - изменяя значение поля до нуля.
CLRFRM Синтаксис: CLRBLK [1ASK_COMMIT0] і DO_COMMIT і
NO_OMMIT і NO_VALIDATE];
Описание: CLRFRM включает мигание текущего блока. Если
в текущем блоке есть изменения, которые не были переданы или
связаны (committed), то поведение CLRFRM зависит от применяемого вами
ключевого слова.
no keywords SQL*Forms предлагает оператору связать изменения во время
работы CLRFRM.
ASK_COMMIT SQL*Forms предлагает оператору связать изменения во время
работы CLRFRM.
DO_COMMIT SQL*Forms аттестует изменения, выполняет связывание и
включает мигание текущей формы без обращения к оператору.
NO_COMMIT SQL*Forms аттестует изменения и включает мигание
текущей формы без выполнения связывания и обращения к
оператору.
NO_VALIDATE SQL*Forms включает мигание текущей формы без аттестации
изменений, связывания изменений или обращения к оператору.
CLRREC Cинтаксис: CLRREC;
----------
Описание: CLRREC включает мигание текущего блока. Если запрос в блоке
открыт, то SQL*Forms выбирает записи для перезаполнения блока.
COMMIT Синтаксис: COMMIT
----------
Описание: СOMMIT обновляет данные в базе данных для сопоставления данных
в форме. Сначала SQL*Forms аттестует форму. Если есть изменения для
связывания с базой данных, то для каждого блока формы SQL*Forms передает
удаление, вставку и обновление в базу данных и выполняет связывание базы
данных. Когда связывание закончено, SQL*Forms освобождает все таблицы и
запирания строк, хранившиеся у оператора.
Если вы передали данные в базу данных во время текущего сеанса SQL*Forms
(Текущая форма), COMMIT связывает данные с базой данных.
-- 102 --
Аналоги: Функциональные коды V2, POST F-29
COPY Синтаксис: COPY sourse INTO destination;
----------
Описание: COPY копирует исходное значение для пункта назначения. Исходное
значение может быть константой, значением поля, глобальной переменной
или системной переменной; пункт назначения может быть полем или
глобальной переменной.
Функциональный код COPY и команда #COPY производят одно и то же действие.
Аналоги: Команда #COPY F-10
СQUERY Синтаксис: CQUERY;
----------
Описание: CQUERY идентифицирует номера строк, которые будет искать запрос.
Если есть изменения, которые не были переданы или связаны (committed),
то SQL*Forms предлагает оператору выполнить их связывание во время работы
CQUERY.
CREREC Синтаксис: CREREC;
----------
Описание: CREREC создает новую запись в текущем блоке после текущей записи.
Затем SQL*Forms перемещает курсор в новую запись.
DEFAULT Синтаксис: DEFAULT value INTO variable;
----------
Описание: DEFAULT копирует значение в переменную, если текущее значение
переменной равно нулю. Если у текущей переменной ненулевое значение, то
DEFAULT не выполняет никаких действий. Если переменная является
неидентифицированной глобальной переменной, то SQL*Forms создает
переменную.
DELBACK Синтаксис: DELBACK;
----------
Описание: DELBACK удаляет символ поля слева от курсора.
DELCHR Синтаксис: DELCHR;
----------
Описание: DELCHR удаляет текущую запись из блока. Если запись соответствует
строке базы данных, SQL*Forms выполняет запирание записи перед удаления,
маркируя его как для удаления. Если запрос в блоке открыт, SQL*Forms выбирает
записи для перезаполнения блока.
DERROR
----------
Синтаксис: DERROR отображает на экран Display Error, если есть выходная
ошибка. Когда оператор нажимает функциональную клавишу,
SQL*Forms переотображает форму.
DISPLAY
----------
Синтаксис: DISPLAY variable display_attribute;
Описание: DISPLAY модифицирует способ появления поля (variable) на терминале,
изменяя специфицированный атрибут отображения (display_attribute). Имена
допустимых атрибутов собраны в карте отображений Oracle*Terminal, в которой
-- 103 --
работает форма. Если вы специфицируете недопустимый атрибут отображения,
SQL*Forms присваивает атрибут отображения по умолчанию для поля, как это
определено в текущей карте отображений.
Вы можете делать ссылки на любое поле текущей формы. Помните, что DISPLAY
воздействует только на текущий экземпляр поля. Это означает, что если вы
специфицируете изменение отображения для поля, существующего в блоке со
множеством записей, DISPLAY только изменяет экземпляр поля,
принадлежащего текущей записи поля.
Любые изменения, сделанные функциональным кодом DISPLAY, эффективны до тех
пор, пока другоq код DISPLAY не изменит ту же характеристику или не
кончится сеанс SQL*Forms (Текущая форма).
Аналоги: Oracle*Terminal 25-10
DKEYS Синтаксис: DKEYS;
----------
Описание: DKEYS отображает на экран Show Keys. Когда оператор нажимает
функциональную клавишу, SQL*Forms переотображает форму.
DOWN Синтаксис: DOWN;
----------
Описание: DOWN перемещает курсор в экземпляр текущего поля в запись со
следующим порядковым номером. По необходимости, SQL*Forms создает новую
запись или выбирает запись для курсора для перемещения.
DUPLFLD Синтаксис: DUPFLD;
----------
Описание: DUPFLD присваивает текущему полю то же значение, что и
экземпляру этого поля в предыдущей записи.
DUPREC Cинтаксис: DUPREC;
----------
Описание: DUPREC копирует значение каждого поля предыдущей записи в
соответствующие поля текущей записи. Текущая запись не должна соответствовать
строке базы данных.
EDITFIELD
----------
Синтаксис: EDITFIELD [x_coordinate y_coordinate width height];
где:
x_coordinate Специфицирует целый номер координаты X на экране, где вы
хотите поместить верхний левый угол всплывающего
редактора поля.
y_coordinate Специфицирует целый номер координаты Y на экране, где вы
хотите поместить верхний левый угол всплывающего
редактора поля.
width Специфицирует новую ширину символов всплывающего редактора
поля.
heigh Специфицирует новую высоту символов всплывающего редактора
поля.
Описание: EDITFIELD активизирует редактор для текущего поля SQL*Forms
(Текущая форма) и помещает форму в режим Edit.
-- 104 --
Вы можете использовать необязательные параметры EDITFIELD для спецификации
положения размеров всплывающего окна, с которым связан редактор поля.
Если вы не используете этих параметров, SQL*Forms запускает редактор
поля с размерами и положением по умолчанию.
Аналоги: Редактор поля 13-2
ENDSTEP
----------
Синтаксис: ENDSTEP [FAIL] [MESSAGE message];
Описание: ENDSTEP останавливает процессирование текущего шага триггера. Даже
если вы специфицировали ключевое слово FAIL, шаг триггера выдает успех.
Вы можете использовать фразу MESSAGE для посылки сообщения (message) в
строку сообщений. Помните, что характеристика шага триггера не
оказывает влияния на поведение ENDSTEP.
ENDTRIG ENDTRIG [FAIL] [MESSAGE message];
----------
Описание: ENDTRIG останавливает процессирование текущего шага триггера. Даже
если вы специфицировали ключевое слово FAIL, шаг триггера выдает успех.
Вы можете использовать фразу MESSAGE для посылки сообщения (message) в
строку сообщений. Помните, что ENDTRIG блокирует процессирование
success/failure для текущего шага триггера.
ENTER Синтаксис: ENTER;
---------
Описание: ENTER аттестует данные в текущих единицах аттестации.
ENTQRY Синтаксис: ENTQRY [ALL] [FOR UPDATE];
----------
Описание: ENTQRY заставляет мигать текущий блок и помещает форму в
режим Enter Query. Если есть изменения, которые не были связаны, то
SQL*Forms предлагает оператору выполнить их связывание во время работы
ENTQRY.
Если вы используете ключевое слово ALL, то SQL*Forms вызывает все
отобранные записи из одной выборки. Если вы используете фразу FOR
UPDATE, то SQL*Forms пытается немедленно запереть все отобранные записи.
ERASE ERASE GLOBAL.variablename;
---------
Описание: ERASE удаляет указанную глобальную переменную таким образом, чтобы
она перестала существовать. Функциональный код ERASE и команда #ERASE
выполняют одни и те же операции.
ENTQRY Синтаксис: ENTQRY [ALL] [FOR UPDATE];
---------
Описание: ENTQRY заставляет мигать текущий блок и помещает форму в
режим Enter Query. Если есть изменения, которые не были связаны, то
SQL*Forms предлагает оператору выполнить их связывание во время работы
ENTQRY.
Если вы используете ключевое слово ALL, то SQL*Forms вызывает все
отобранные записи из одной выборки. Если вы используете фразу FOR
UPDATE, то SQL*Forms пытается немедленно запереть все отобранные записи.
-- 105 --
EXETRG Синтаксис: EXETRG triggername;
---------
Описание: EXETRG выполняет указанный именной триггер пользователя.
EXIT
---------
Синтаксис: EXIT [1ASK_COMMIT0 і DO_COMMIT і NO_COMMIT і NO_VALIDATE];
Описание: Во время CALLINPUT, EXIT завершает функцию CALLINPUT. Все другие
контексты EXIT перемещает за пределы формы. Если в текущем блоке есть
изменения, которые не были переданы или связаны (committed), то поведение
EXIT зависит от применяемого вами ключевого слова.
no keywords SQL*Forms предлагает оператору связать изменения во время
работы EXIT.
ASK_COMMIT SQL*Forms предлагает оператору связать изменения во время
работы EXIT.
DO_COMMIT SQL*Forms аттестует изменения, выпполняет связывание
и выходит из формы без обращения к оператору.
NO_COMMIT SQL*Forms аттестует изменения и выходит из текущей формы
без связывания изменений и обращения к оператору.
NO_VALIDATE SQL*Forms выходит из текущей формы без аттестации
изменений, связывания изменений и обращения к оператору.
FIRDTREC Синтаксис: FIRSTREC;
---------
Описание: FIRSTREC сдвигает курсо к первой записи списка записей в блоке.
GOBLK Синтаксис: GOBLK blockname;
---------
Описание: GOBLK сдвигает курсор в указанный блок.
GOFLD Синтаксис: GOFLD field;
---------
Описание: GOFLD сдвигает курсор в указанное поле.
GOREC Синтаксис: GOREC record_number;
---------
где
record_number специфицирует любое значение, которое SQL*Forms может оценить
как номер. Это включает такие значения как: SYSTEM.TRIGGER_RECORD + 8'.
Описание: GOREC использует порядковый номер для перемещения в
указанную запись.
Замечание: Вы можете использовать сисмтемную переменную SYSTEM.CURSOR_RECORD
или SYSTEM.TRIGGER_RECORD для определения порядкового номера записи.
Аналоги: SYSTEM.CURSOR_RECORD 18-8
SYSTEM.TRIGGER_RECORD 18-12
QOSTEP Синтаксис: GOSTEP label;
---------
Описание: GOSTEP вызывает переход выполнения триггера в выполнение
названного шага триггера (label).
-- 106 --
HELP Синтаксис: HELP;
---------
Описание: HELP отображает подсказки в строку сообщений. Если краткая
подсказка только что была отображена, то HELP отображает подробную
справочную информацию о поле.
HIDEMENU Синтаксис: HIDEMENU;
---------
Описание: HIDEMENU вызывает исчезновение текущего меню SQL*Menu, если оно
отображается в данный момент, в любой части формы, которую перекрывало меню.
Если активизирован функциональный код V2 SHOWMENU или оператор нажмет
[Menu], меню снова отображается.
Аналоги: Связь с SQL*Menu 25-3
HIDEPAGE Синтаксис: HIDEPAGE page_namber;
---------
где page_namber - это номер страницы, которую вы хотите сделать невидимой.
Описание: HIDEPAGE вызывает исчезновение страницы с экрана.
Замечание:
- Вы не можете сделать невидимой текущую страницу формы.
- Вы можете использовать HIDEPAGE только для всплывающих страниц.
Аналоги: Характеристики страниц 10-4
Всплывающие страницы 13-5
HOST Синтаксис: HOST system_command [NOSCREEN];
---------
Описание: HOST выполняет указанную команду операционной системы. Если вы
используете ключевое слово NOSCREEN, то SQL*Forms не позволяет оператору
выполнить ввод.
Функциональный код HOST и команда #HOST выполняют одни и те же функции.
Аналоги: Команда #HOST F-11
LASTREC Синтаксис: LASTREC;
---------
Описание: LASTREC перемещает курсор к последней записи списка записей блока.
Если запрос в блоке открыт, SQL*Forms выбирает записи для перезаполнения блока
LISTVAL Синтаксис: LISTVAL [1NO_RESTRICT0 і RESTRICT];
---------
Описание: LISTVAL отображает список значений текущего поля. Список значений
остается отображенным до тех пор, пока оператор не нажмет [Exit/cancell] или
не выберет значение для поля.
По умолчанию, LISTVAL использует ключевое слово NO_RESTRICT. Это ключевое
слово заставляет SQL*Forms не использовать автоматический поиск и полное
свойство (complete feature). C помощью этого свойства список значений
оценивает текущее значение поля как значение поиска.
MENU Синтаксис: MENU;
---------
Описание: MENU отображает меню блока и принимает вводимые оператором
данные. Если оператор вводит допустимую выборку, MENU перемещает
курсор в соответствующий блок.
MESSAGE Синтаксис: MESSAGE message;
---------
Описание: MESSAGE отображает определенное сообщение в строке сообщений.
-- 107 --
MOVEVIEW
---------
Синтаксис: MOVEVIEW page_namber x_coordinate y_coordinate;
где:
page_number Специфицирует дискретный номер страницы в текущей форме,
из которой состоит представление.
x_coordinate Определяет на экране x координату той точки, где вы хотите
поместить левый верхний угол представления.
y_coordinate Определяет на экране y координату той точки, где вы хотите
поместить левый верхний угол представления.
Описание: MOVEVIEW сдвигает представление страницы в другое положение.
Эта процедура в значительнгой мере изменяет часть страницы, которую
оператор видит в представлении. Процедура не меняет положения
представления на экране.
Замечание:
- Нельзя сдвигать представление таким образом, чтобы часть его
оказалась за пределами экрана.
- Вы можете использовать MOVEVIEW только для всплывающих страниц.
Аналоги: Страницы, характеристики 10-4
Всплывающие страницы 13-5
Функциональные коды V2, ANCHORVIEW F-14
MOVLEFT Синтаксис: MOVLEFT;
---------
Описание: MOVLEFT сдвигает курсор на один пробел влево. По необходимости,
MOVLEFT прокручивает значение поля, чтобы поместить курсор в соответствующий
сивол пробела.
MOVRIGHT Синтаксис: MOVRIGHT;
---------
Описание: MOVRIGHT сдвигает курсор на один пробел влево. По необходимости,
MOVRIGHT прокручивает значение поля, чтобы поместить курсор в соответствующий
сивол пробела.
NEWFRM Синтаксис: NEWFRM formname;
---------
Описание: NEWFRM выводит текущую форму и вводит указанную форму.
Вызываемая форма прекращает выполнение родительской формы. Если вызываемая
форма была вызвана формой более высокого уровня, то SQL*Forms сохраняет
запрос высшего уровня в активном состоянии и рассматривает его как
запрос новой формы. SQL*Forms освобождает память, которую использовала
прекращенная форма.
SQL*Forms выполняет новую опцию с именем той же опции SQL*Forms (Текущая
форма), что и у родительской формы. Если родительская форма была
вызываемой формой, то SQL*Forms выполняет новую опцию с теми же параметрами
(например, HIDE и NO_REPLACE), что и у родительской формы.
Аналоги: Функциональные коды V2,CALL F-15
NOOP Синтаксис: NOOP;
---------
Описание: NOOP отображает сообщения, "Unrecognised command" (неопознанная
команда). NOOP не выполняет никаких функций.
-- 108 --
NULL Синтаксис: NULL;
---------
Описание: NULL не выполняет никаких функций.
NXTLBK Cинтаксис: NXTLBK;
---------
Описание: NXTLBK перемещает курсор к вводимому блоку с порядковым номером,
следующим за текущим блоком. Если такого блока нет, то NXTBLK
перемещает курсор к вводимому блоку, имеющему предыдущий порядковый номер.
Если такого блока нет, то NXTBLK перемещает курсор к текущему блоку.
NXTFLD Cинтаксис: NXTFLD;
---------
Описание: NXTFLD перемещает курсор к вводимому блоку с порядковым номером,
следующим за текущим блоком. Если такого блока нет, то NXTFLD
перемещает курсор к вводимому блоку, имеющему предыдущий порядковый номер.
Если такого блока нет, то NXTFLD перемещает курсор к текущему блоку.
Если аттестационной единицей является поле, то NXTFLD аттестует любые поля
с порядковыми номерами большими, чем у текущего поля или меньшими, чем у
выходного поля.
NXTKEY Синтаксис: NXTKEY;
---------
Описание: NXTKEY перемещает курсор к вводимому полю ключевого слова с
порядковым номером, следующим за текущим полем. Если такого поля нет,
то NXTKEY перемещает курсор к вводимому полю ключевого слова, имеющему
предыдущий порядковый номер.
Если аттестационной единицей является поле, то NXTKEY аттестует любые поля с
порядковыми номерами большими, чем у текущего поля или меньшими, чем у
выходного поля.
NXTREC Синтаксис: NXTREC;
---------
Описание: NXTREC перемещает курсор к записи с порядковым номером, следующим
за текущей записью. Если такй записи нет и запрос открыт в блоке, то
SQL*Forms выбирает записи во время работы NXTREC.
NXTSET Синтаксис: NXTSET;
---------
Описание: NXTSEC захватывает следующий набор записей из базы данных и
перемещается к первой записи выборки. NXTSET успешно выполняется, только
если запрос открыт в текущем блоке.
PAUSE Синтаксис: PAUSE;
---------
Описание: PAUSE приостанавливает процессирование до тех пор, пока оператор
не нажмет функциональную клавишу.
POST Синтаксис: POST;
---------
Описание: POST записывает данные формы в базу данных, но не выполняет
связывания с базой данных. Сначала SQL*Forms аттестует форму. Если есть
изменения для связывания с базой данных, то для каждого блока формы
SQL*Forms передает удаление, вставку и обновление в базу данных.
-- 109 --
Любые данные, переданные в базу данных связываются в базе данных с
помощью COMMIT, которая выполнялась во время текущего сеанса SQL*Forms
(Текущая форма). Или же эти данные прокручиваются назад с помощью CLRFRM.
Аналоги: Функциональные коды V2, COMMIT F-29
Точки сохранения 3-17
PRINT Синтаксис: PRINT;
---------
Описание: PRINT записывает одну или все страницы формы в файл. SQL*Forms
обращается к оператору за указаниями о том, какие страницы нужно записать,
какое имя у файла, в который эти страницы должны быть записаны и нужно ли
посылать файл в принтер.
PRVBLK Синтаксис: PRVBLK;
---------
Описание: PRVLBK перемещает курсор к вводимому блоку, имеющему предыдущий
порядковый номер. Если такого блока нет, то PRVBLK перемещает курсор к
вводимому блоку с порядковым номером, следующим за текущим блоком. Если
такого блока нет, то PRVBLK перемещает курсор к текущему блоку.
PRVFLD Синтаксис: PRVFLD;
---------
Описание: PRVFLD перемещает курсор к вводимому полю, имеющему предыдущий
порядковый номер. Если такого поля нет, то PRVFLD перемещает курсор к
вводимому полю с порядковым номером, следующим за номером текущего поля. Если
такого поля нет, то PRVBLK перемещает курсор к текущему полю.
PRVREC Синтакис: PRVREC;
---------
Описание: PRVREC курсор к записи, имеющей предыдущий порядковый номер.
REDISP Синтаксис: REDISP;
---------
Описание: REDISP переотображает экран. Это убирает все посторонние сообщения.
REPLACE
---------
Синтаксис: REPLACE menu_application [menu_type [starting_menu [group_name]]]
где:
menu_application Специфицирует прикладные программы SQL*Menu, которые
заменят меню текущих прикладных программ. Этот параметр
заменяет прикладную прграмму, специфицированную в
характеристике формы Default Menu Application.
menu_type Определяет тип отображения меню (BARіFULL_SCREENіPULL_DOWN).
Этот параметр заменяет тип отображения меню по умолчанию
(PULL_DOWN). Если вы не определили тип меню, SQL*Forms
использует тип PULL_DOWN.
Более подробную информацю о типах меню вы можете
найти в SQL*Menu User's Guide and Reference.
starting_menu Определяет меню во вспомогательном меню, которое SQL*Forms
должна использовать в качестве начального. Этот параметр
заменяет меню специфицированное в характеристике формы
Starting Menu Name. Если вы не определили начальное
меню, то SQL*Menu использует меню с тем же именем, что и
вспомогательное меню.
-- 110 --
group_name Определяет группу защиты (security), которую использует
SQL*Menu. Этот параметр заменяет меню определенное в
характеристике формы Menu Security Group. Если вы не
определили имя группы, то SQL*Menu использует текущее
имя пользователя для определения группы.
Описание: REPLACEMENU заменяет текущее меню SQL*Forms специфицированным
меню, но не делает это новое меню активным. REPLACEMENU также позволяет
вам изменять способ отображения меню и группу защиты, которую SQL*Menu
использует при определении того, какую опцию меню отображать.
Поскольку REPLACEMENU не делает новое меню активным, SQL*Forms не
позволяет меню перекрывать какую-либо часть активной страницы. Таким
образом, часть или все меню не появятся, если активная страница закрывает его.
Аналоги: Связь с SQL*Menu 25-3
RESIZEVIEW Синтаксис: RESIZEVIEW page_number width heigth;
---------
где:
page_number Определяет номер страницы текущей формы, из которой
состоит представление.
width Специфицирует новую ширину символов в представлении.
heigh Специфицирует новую высоту символов в представлении.
Описание: RESIZEVIEW изменяет размер представления страницы.
Замечание:
- Вы не можете изменить размеры представления таким образом, чтобы оно
было больше, чем страница, для которой и служит это представление. В
случае, когда представление отображает область, находящуюся за пределами
страницы, SQL*Forms автоматически сдвигает представление на
минимально возможное расстояние.
Аналоги: Характеристики страниц 10-4
Всплывающие страницы 13-5
SCRDOWN Синтаксис: SCRDOWN;
---------
Описание: SCRDOWN делает прокрутку вверх перечня записей текущего блока на
приблизительно 80% отображения блока. Это действие отображает записи,
которые были "ниже" отображения блока. Если есть нужные записи и запрос
в блоке открыт, то SQL*Forms отбирает записи во время работы SCRDOWN.
После прокрутки SCRDOWN перемещает курсор к началу поля курсора в
отображенной записи с последующим порядковым номером.
SCRLEFT Синтаксис: SCRLEFT;
---------
Описание: SCRLEFT прокручивает значение в текущем поле вправо примерно на
80% отображаемого поля. Это действие отображает данные, которые были справа
от отображения блока.
SCRRIGHT Синтаксис: SCRRIGHT;
---------
Описание: SCRRIGHT прокручивает значение в текущем поле вправо примерно на
80% отображаемого поля. Это действие отображает данные, которые были слева
от отображения блока.
-- 111 --
SCRUP Синтаксис: SCRUP;
---------
Описание: SCRUP делает прокрутку вниз перечня записей текущего блока на
приблизительно 80% отображения блока. Это действие отображает записи,
которые были "над" отображением блока.
После прокрутки SCRDOWN перемещает курсор к началу поля курсора в
отображенной записи с предыдущим порядковым номером.
SET
Синтаксис: SET variable characteristic [1ATTR_ON і ATTR_OFF];
---------
где: characteristic определяет одно из значений следующей таблицы:
Значение Соответствующая характеристика
----------------------------------------------Д
AUTO_HELP Automatic Hint
AUTO_SKIP Automatic Skip
FIXED_LENGTH Fixed Length
ENTERABLE Input Allowed
REQUIRED Required
ECHO Echo Input
QUERYABLE Query Allowed
UPDATEABLE Update Allowed
UPDATE_NULL Update if Null
UPPER_CASE Uppercase
Описание: SET модифицирует поле, меняя специфицированную характеристику поля.
Помните, что за один раз вы можете изменить только одну характеристику поля.
По умолчанию SET использует параметр ATTR_ON. Этот параметр заставляет
SQL*Forms устанавливать специфицированную характеристику "on". Если же
вы используете параметр ATTR_OFF, SQL*Forms устанавливает специфицированную
характеристику "off".
Любые изменения, сделанные функциональным кодом SET, будутв действии до тех
пор, пока др угой функциональный код SET не изменит эту же характеристику
или пока не закончится сеанс SQL*Forms (Текущая форма).
Замечание: Следующие ограничения и условия применяются, когда вы используете
SET:
- SET не может назначать или отменять назначение характеристики
Displayed для любых полей.
- SET не может отменять назначение характеристики Input Allowed для
текущего поля.
- Если изменение характеристики вызывает смысловой конфликт с другими
характеристиками поля, приоритет имеет последнее изменение.
Аналоги: Поля, характеристики 12-4
SHOWMENU Синтаксис: SHOWMENU;
---------
Описание: SHOWMENU отображает ткущее меню SQL*Menu, если оно не отображается в
данный момент.
-- 112 --
Поскольку SHOWMENU не делает меню активным, SQL*Forms не позволяет меню перек-
рывать какую-либо часть активной страницы. Таким образом, когда активная
страница занимает весь экран, ни часть, ни все меню полностью не появляется
на экране.
Аналоги: Связь с SQL*Menu 25-3
SHOWPAGE Синтаксис: SHOWPAGE page_number;
---------
где
page_number - это N страницы текущей формы, которую вы хотите отобразить.
Описание: SHOWPAGE отображает указанную страницу на экран.
Замечание:
- SHOWPAGE не активизирует отображенную страницу.
- Вы должны использовать SHOWPAGE только для всплывающих страниц.
Аналоги: Страницы, характеристики 10-4
Всплывающие страницы 13-5
SYNCRONIZE Синтаксис: SYNCRONIZE;
---------
Описание: SYNCRONIZE синхронизирует терминал с внутренним состоянием формы.
UP Синтаксис: UP;
---------
Описание: UP перемещает курсор в начало текущего поля записи, имющей
предыдущий порядковый номер.
UPDREC Синтаксис: UPDREC;
---------
Описание: UPREC пытается блокировать строку в базе данных,
соответствующую текущей записи.
Условия Чтобы использовать алгоритм успех/неуспех в триггере V2,
неуспеха использующем функкциональные коды, нужно знать условия,
для при которых функциональный код выдаст неуспех. Чтобы
функцио- предсказать поведение функционального кода V2, сначало
нальных нужно идентифицировать соответствующую пакетную
кодов V2 процедуру в разделе "Сопоставление функциональных кодов V2 c
эквивалентами V3" и затем трассировать неуспех пакетной
процедуры в соответствующую блок-схему, описанную в пункте
"Исходное процессирование" Главs 21.
Аналоги: Исходные блок-схемы 21-2
Алгоритм успез/неуспех в триггерах V2 F-43
Сопостав- Если вы хотите преобразовать триггеры V2 в триггеры V3,
ление используйте следующую таблицу. В этой таблице даны
функцио- соответствия имен функциональных кодов V2 именам
нальных пакетных кодов V3.
кодов V2
с эквива- Для случая, когда соответствующей пакетной процедуры
лентами V3 нет, в таблице представлен код PL/SQL, выполняющий
такие же функции или говорится, что эквивалента нет.
-- 113 --
Имя функционального Эквивалент V3
кода V2
--------------------------------------------------------
ABTQRY ABORT_QUERY
ANCHORVIEW ANCHOR_VIEW
BELL BELL
BREAK BREAK
CALL CALL
CALLINPUT CALL_INPUT
CALLQRY CALL_QUERY
COPY source := designation или COPY
CHRMODE нет эквивалента
CLRBLK CLEAR_BLOCK
CLREOL CLEAR_EOL
CLRFLD CLEAR_FIELD
CLRFRM CLEAR_FORM
CLRREC CLEAR_RECORD
COMMIT COMMIT
CQUERY COUNT_QUERY
CREREC CREATE_RECORD
DEFAULT DEFAULT_VALUE
DELBACK нет эквивалента
DELCHR нет эквивалента
DELREC DELETE_RECORD
DERROR DISPLAY_ERROR
DKEYS SHOW_KEYS
DOWN DOWN
DUPFLD DUPLICATE_FIELD
DUPREC DUPLICATE_RECORD
EDITFIELD EDIT_FIELD
ENDSTEP нет эквивалента
ENDTRIG нет эквивалента
ENTER ENTER
ENTQRY ENTER_QUERY
ERASE ERASE
EXEQRY EXECUTE_QUERY
EXETRG EXECUTE_TRIGGER
EXIT EXIT_FORM
GOBLK GO_BLOCK
GOFLD GO_FIELD
GOREC GO_RECORD
GOSTEP нет эквивалента
HELP HELP
HIDEPAGE HIDE_PAGE
HOST HOST
LISTVAL LIST_VALUES
MENU BLOCK_MENU
MESSAGE MESSAGE
MOVEVIEW MOVE_VIEW
MOVLEFT нет эквивалента
MOVRIGHT нет эквивалента
NEWFRM NEW_FORM
NOOP MESSAGE ('FRM-41000: You
pressed an undefined function
key.')
-- 114 --
NULL NULL
NXTBLK NEXT_BLOCK
NXTFLD NEXT_FIELD
NXTKEY NEXT_KEY
NXTREC NEXT_RECORD
NXTSET NEXT_SET
PAUSE PAUSE
POST POST
PRVBLK PREVIOUS_BLOCK
PRVFLD PREVIOUS_FIELD
PRVREC PREVIOUS_REC
PRINT PRINT
REDISP REDISPLAY
RESIZEVIEW RESIZE_VIEW
SCRDOWN SCROLL_DOWN
SCRLEFT нет эквивалента
SCRRIGHT нет эквивалента
SCRUP SCROLL_UP
SET SET_FIELD
SHOWPAGE SHOW_PAGE
SYNCRONIZE SYNCRONIZE
UP UP
UPDREC LOCK_RECORD
Аналоги: Пакетные процедуры 16-1
Совместимость снизу вверх B-1
Оператор CASE
Оператор CASE - это оператор SQL*Forms, который используется только
внутри команды #EXEMACRO. Вы можете применять оператор CASE для условного
выполнения функциональных кодов.
Оператор CASE можно помещать как до, так и после функциональных кодов
внутри команды #EXEMACRO. Любой функциональный код, появляющийся в
#EXEMACRO после оператора CASE выполняется независимо от того, какой
процесс выполняется в данный момент.
Помните, что оператор CASE выдает неуспех, если он содержит недопустимый
синтаксис или оператор.
Синтаксис: CASE selector IS alternative [alternative]...END CASE
где:
selector Специфицирует значение.
altenative Специфицирует следующую структуру:
WHEN choice [і,choice]...
THEN statement [statement...]
choice Специфицирует значение ключевого слова OTHERS.
statement Специфицирует функциональный код V2 или оператор CASE.
За более подробной информацией о значении (value) обращайтесь к разделу
"Параметры функционального кода V2".
Пример: Предположим, что вы хотите выполнять различные действия внутри блока
ORDERS, зависящего от значения поля ORDERID. Следующий триггер
выполняет такую операцию:
#EXEMACRO
-- 115 --
GOBLK ORDERS;
CASE ORDERS.ORDID IS
WHEN ''THEN CLRBLK;
WHEN OTHERS THEN EXEQRY;
END CASE;
GOBLK ITEMS;
Аналоги: Команда #EXEMACRO F-11
Переменные в шагах триггера
---------
В шагах триггера могут быть использованы следующие типы переменных:
- глобальные переменные
- системные переменные
- ссылочные переменные
Глобальные В шагах триггера глобальные переменные используются
переменные также, как и в триггерах V3, за исключением того, что
в шагах вы не можете ссылаться на глобальные переменные в
триггера операторах SQL. В триггерах V2 глобальные переменные присваива-
ются с помощью функционального кода COPY V2 или команды #COPY.
Аналоги: Команда #COPY F-10
Глобальные переменные 18-2
Функциональные коды V2, COPY F-19
Системные Системные переменные в шагах триггера используются также,
переменные как и в триггерах V3. Разрешается использование как
в шагах системных переменных, применяемых в триггерах V3, так
триггеров и нижеперечисленных переменных:
SYSTEM.BLOCK_STATUS SYSTEM.LAST_RECORD
SYSTEM.CURSOR_RECORD SYSTEM.RECORD_STATUS
SYSTEM.FORM_STATUS SYSTEM.TRIGGER_RECORD
Аналоги: Системные переменные 18-3
Ссылочные переменные
---------
Ссылка на переменную является косвенной ссылкой на значение поля,
глобальную переменную или системную переменную.
SQL*Forms оценивает ссылочную переменную, когда она выполняет команду
SQL*Forms или функциональный код V2, содержащий ссылку.
Синтаксис: & variable
---------
Пример команды SQL*Forms, использующей ссылочные переменные:
#COPY &ORDERS.LOCATION GLOBAL.LOCATION
Когда SQL*Forms оценивает ссылочную переменную, она "заглядывает" в поле
ORDERS.LOCATION, чтобы узнать имя переменной, содержащей значение, которое она
скопирует в GLOBAL.LOCATION.
- Если ORDERS.LOCATION содержит SYSTEN.CURSOR_VALUE, то SQL*Forms присваива-
ет значение в текущем поле, а не в строке символов 'SYSTEM.CURSOR_VALUE'
-- 116 --
- ORDERS.LOCATION содержит значение &GLOBAL.STATE, SQL*Forms ищет имя
другой переменной, содержащей значение,которое нужно скопировать, в
GLOBAL.STATE. Помните, что если вы используете ссылочные
переменные рекурсивно, вы должны гарантировать, что вы не создадите
бесконечный цикл ссылок.
- Если ORDERS.LOCATION содержит значение &&GLOBAL.STATE, SQL*Forms
рассматривает знаки & как отдельные. Это означает, что SQL*Forms ищет в
GLOBAL.STATE имя переменной, содержащей имя другой переменной,
содержащей значение, которое нужно скопировать.
Аналоги: Пакетная функция NAME_IN 17-10
Работа триггеров V2
---------
SQL*Forms процессирует триггеры V2 также как триггеры V3. То есть
каждый тип триггера запускается во время определенных событий и в определенном
порядке. Однако, внутри отдельных триггеров SQL*Forms процессирует триггеры
V2 не так, как триггеры V3.
Когда запускается триггер V2, SQL*Forms выполняет шаги триггера по одному и в
определенном порядке. Помните, что вы можете изменить порядок, в котором
SQL*Forms выполняет шаги триггеров с помощью передачи управления
функциональному коду GOSTEP или характеристикам шага триггера Success Label
и Failure Label.
Аналоги: Триггеры, процессирование 4-5
Алгоритм успех/неуспех в триггерах F-43
Результат работы триггеров
---------
Результатом работы триггера может быть успех или неуспех.
success Триггер завершается успешно, если все его шаги закончились
успешно или если ни один из неуспешных шагов не привел к
аварийному завершению триггера или возврату.
failure Завершением триггера является неуспех, если каждый шаг
вызывал фатальную ошибку или если любой безуспешный шаг
приводил к аварийному завершению без возможности возврата.
Результаты упеха или неуспеха триггера V2 идентичны соответствующим
результатам в триггерах V3.
Аналоги: Характеристика шага триггера Abort On
Failure F-5
Результаты неуспеха триггера 4-7
Характеристика шага триггера F-8
Результат Шаг триггера может закончиться успехом, неуспехом или
работы фатальной ошибкой.
шагов
триггеров Поскольку шаг триггера может содержать только одну команду,
результат работы шага триггера идентичен результату работы
команды, содержащей этот шаг. Например, если шаг триггера
содержит оператор SQL и этот оператор выдает неуспех, шаг
триггера также выдает неуспех.
Результат работы отдельного шага триггера зависит от того, состоит
ли шаг триггера из вызова пользовательского выхода , оператора SQL или
оператора SQL*Forms.
-- 117 --
- SQL*Forms работает с вызовами пользовательского выхода в триггерах
V2 идентично тому, как она работает в триггерах V3.
- SQL*Forms работает с операторами SQL в триггерах V2 идентично тому, как
она работает в триггерах V3. Однако, поскольку SQL*Forms не проверяет
синтаксис триггеров V2, оператор SQL*Forms может завершиться фатальной
ошибкой, если он содержит синтаксическую ошибку.
- Информация о работе SQL*Forms с командами SQL*Forms содержится в разделе
"Работа команд SQL*Forms".
Замечание: Вы можете изменить результат работы шага триггера на противополож-
ный с помощью характеристики шага триггера Reverse Return Code.
Аналоги: Работа операторов SQL 4-5
Работа вызовов пользовательского выхода 4-6
Характеристика шага триггера Reverse
Return Code F-7
Работа Результатом работы команды SQL*Forms может быть успех,
команд неуспех или фатальная ошибка.
SQL*Forms
success Команда SQL*Forms завершается успешно, если она выполняется
должным образом.
failure Команда SQL*Forms завершается безуспешно, если она по какой-либо
причине не может быть выполнена или если она содержит
синтаксическую ошибку.
fatal error Команда SQL*Forms вызывает фатальную ошибку, команда приводит к
тому, что операционная система работает вне памяти (out ofmemory)
Работа Когда SQL*Forms работает с командой #EXEMACRO, она
функцио- выполняет функциональные коды по одному в определенном
нальных порядке. Любые изменения, вызываемые функциональным
кодов V2 кодом влияют на последующие функциональные коды.
Результатом работы функционального кода V2 может быть успех, неуспех
или фатальная ошибка.
success Функциональный код V2 завершается успешно, если он
выполняется должным образом.
failure Функциональный код V2 завершается безуспешно, если он
по какой-либо причине не может быть выполнен.
fatal error Функциональный код V2 вызывает фатальную ошибку, если
оператор приводит к тому, что операционная система
работает вне памяти.
В триггере V2 результат работы команды #EXEMACRO зависит от результата
работы каждого функционального кода, содержащегося в команде.
- Если функциональный код завершается успешно, SQL*Forms продолжает
выполнение оператора #EXEMACRO.
- Если функциональный код завершается безуспешно, SQL*Forms выполняет
следующие действия:
-- 118 --
- генерирует сообщение об ошибке
- продолжает выполнение оператора #EXEMACRO
- приводит к неуспеху шага триггера
- Если функциональный код вызывает фатальную ошибку, SQL*Forms выполняет
следующие действия:
- генерирует сообщение об ошибке
- останавливает выполнение оператора #EXEMACRO
- приводит к фатальной шага триггера
Аналоги: Команда #EXEMACRO F-11
Алгоритм Вы можете использовать алгоритм успех/неуспех в триггерах
успех/ V2, чтобы определенным образом изменить порядок,
/неуспех в в которм SQL*Forms выполняет шаги триггера.
триггере V2
Чтобы использовать алгоритм успех/неуспех, специфицируйте характеристику шага
триггера Label для каждого шага в триггере. Затем определите характеристики
шагов триггера Success Label и Failure Label. Для каждого отдельного шага
триггера Success Label и Failure Label определяют, какой шаг триггера
SQL*Forms избирает в случае успеха или неуспеха шага триггера.
Пример:
Предположим, что вам нужен триггер, который переопределяет [Previous Field],
когда курсор находится в поле ITEMS.ORDERID (первое поле записи). Нужно, чтобы
курсор переместился к полю ORDERS.TOTAL (последнее поле записи) при определен-
ных условиях. Присоедините ключевой триггер к полю ITEMS.ORDERID
со следующими характеристиками:
- Первый шаг имеет следующие характеристики:
Номер шага: 1
Метка: STEP1
Метка успеха: STEP3
Метка неуспеха: STEP2
Текст шага триггера: #EXEMACRO PRVREC;
- Второй шаг имеет следующие характеристики:
Номер шага: 2
Метка: STEP2
Текст шага триггера: #EXEMACRO PRVBLK; GOFLD
ORDERS.TOTAL; ENDTRIG;
- Второй шаг имеет следующие характеристики:
Номер шага: 3
Метка: STEP3
Текст шага триггера: #EXEMACRO PRVFLD;
В этом примере, если курсор при выполнении триггера находится в первой
записи, STEP1 выдает неуспех, триггер переходит к STEP2, и курсор перемеща-
ется к последнему полю предыдущего блока (ORDERS.TOTAL). Если же во время
выполнения триггера курсор не находится в первой записи, то STEP1 выполняется
успешно, триггер переходит к STEP3, и курсор перемещается к предыдущему полю.
|