ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.






                Приложение  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, и курсор перемещается к предыдущему полю.


KOAP Open Portal 2000