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







        Часть VII       П Р И Л О Ж Е Н И Я

Приложение  A       К Р А Т К И Й   О Б З О Р   С В О Й С Т В

   В данном приложении перечисляются  свойства версии 3.0 SQL*Forms, отличющиe
ее от предыдущих версий.  А именно:
  - новые свойства
  - изменненные свойства

        Новые свойства
   Следующие свойства версии  3.0  являются  новыми для SQL*Forms:
  - подключенная вспомогательная система
  - способность  вызывать  SQL*Forms  из  программы  3GL, являющейся
    программой на Си языке
  - обеспечение главенства по умолчанию
  - поддержка создания последовательной нумерации
  - способность к усилению ограничений целостности
  - внешние подпрограммы окон
  - обеспечение работы мыши
  - динамические характеристики поля
  - маски отображения поля
  - редактор верхнего поля
  - верхние страницы
  - способность копировать и делать ссылки на объект
  - объединение (интеграция) PL/SQL
  - способность запускать SQL*Menu из прикладных программ SQL*Forms
  - новые триггеры:

     On-Database-Record       On-Remove-Record
     On-Delete                On-Update
     On-Error                 On-Validate-Field
     On-Insert                On-Validate-Record
     On-Lock                  Post-Commit
     On-Message               Pre-Commit
     On-New-Record


Новые пакетные процедуры (так называемые макросы):

     ANCHOR_VIEW              LAST_RECORD
     BREAK                    MOVE_VIEW
     CLEAR_EOL                POST
     COPY                     RESIZE_VIEW
     DISPLAY_FIELD            SET_FIELD
     FIRST_RECORD             SHOW_PAGE
     GO_RECORD                USER_EXIT
     HIDE_PAGE

- Пакетные функции:

     BLOCK_CHARACTERISTIC     FORM_FAILURE
     ERROR_CODE               FORM_FATAL
     ERROR_TEXT               FORM_SUCCESS
     ERROR_TYPE               NAME_IN
     FORM_CHARACTERISTIC

- Новые системные переменные

                                    -- 28 --



     SYSTEM.BLOCK_STATUS      SYSTEM.LAST_RECORD
     SYSTEM.CURSOR_RECORD     SYSTEM.RECORD_STATUS
     SYSTEM.FORM_STATUS       SYSTEM.TRIGGER_RECORD
     SYSTEM.LAST_QUERY

- DATETIME data type
- LONG data type
- Column-level security
- User preference file

        Измененные свойства

Следующие свойства, имевшие место в предыдущих версиях SQL*Forms, в версии 3.0
изменены:
- вся документация полностью пересмотрена и обновлена
- согласование SQL*Forms (Проектирование) полностью пересмотрено
- вы можете устанавливать размер массива на основе каждого блока
- усилен режим отладки
- полностью пересмотрен формат INP файла
- "экранный живописец" имеет дополнительные возможности

     - использование  [Previous Block],  [Next Block], [Previous Page] и
                      [Next Page]
     - индикаторы для X и Y координат курсора
     - прокрутка, позволяющая создавать формы, больших размеров, чем экран

- Вы можете  отображать  список  величин, таких  как верхнее окно, и вы можете
  заполнять список с помощью оператора Select.
- Допустимыми являются два типа триггеров (V2 и V3).
- Большее число функций может редактировать триггеры.
- Cледующие команды имеют новые аргументы:
     CALL                     CLEAR_FORM
     CALL_QUERY               EXIT_FORM
     CLEAR_BLOCK

- Экран  Show  Keys  может  выполнять  прокрутку, чтобы показать  больше
  описаний  функциональных  ключей.
- Все предложения SQL*Forms (Текущая форма) теперь появляются в диалоговом
  блоке.
- Все определения базовой таблицы SQL*Forms - изменены.
- Строка статуса SQL*Forms (Текущая форма) изменена.
- Все сообщения и ошибки пронумерованы для облегчения идентификации.
- Oracle*Terminal заменяет утилиту CRT.


        Приложение  B

              С О В М Е С Т И М О С Т Ь   С Н И З У   В В Е Р Х

В этом  приложении  рассматривается  вопрос о том, как прикладные  программы,
созданные в предыдущих  версиях SQL*Forms, можно  совмещать  с  версией  3.0
SQL*Forms.  Ниже представлены следующие темы:
   - трансляция (перевод) триггеров в PL/SQL
   - изменение типов данных

        Трансляция триггеров в PL/SQL



                                    -- 29 --



В данном  разделе описывается, как  нужно транслировать версии   2.0/2.2/2.3
триггеров,  записанных  на  языке функционального   кода,  в   PL/SQL.  Целью
является обеспечение  прямой трансляции  таким  образом,  чтобы новый  триггер
вел  себя  идентично  старому.

Хотя триггеры V2 будут работать в версии 3.0 SQL*Forms, Oracle  Corporation
рекомендует вам преобразовать все ваши  триггеры  типа  V2 в тип V3. Это
преобразование позволит вам улучшить и облегчить выполнение прикладных
программ.
Аналоги:   Триггеры версий V2 и V3              4-2

Общие         Чтобы   перевести   триггер   V2   в   V3,  необходимо
вопросы       придерживаться следующей структуры, которая преобразует
трансляции    каждый  шаг  триггера  V2  во  вложенные  блоки  PL/SQL с
              охватывающим  алгоритмом  для оперирования  процедурой
              успех/отказ.
              Транслированный триггер принимает следующий вид:


              DECLARE
                  abort_trigger BOOLEAN;
                  return_code BOOLEAN;
                  ignore_failure BOOLEAN;
                  ignore_trigger_failure EXEPTION;
              BEGIN
                  trigger_step_block;
                  [trigger_step_block;
                  trigger_step_block;
                  ...]
              EXEPTION
                  WHEN ignore_trigger_failure THEN NULL;
              END;
              где trigger_step_block это:
              { } і  }
              DECLARE
                  fail EXEPTION;

BEGIN
    step_logic;
    abort_trigger := FALSE;
    ignore_failure :=FALSE;
    return_code := TRUE;

EXEPTION
    WHEN fail THEN
    abort_trigger := TRUE; ignore_failure := FALSE; і  ;1
    abort_trigger := TRUE; ignore_failure := TRUE; і  ;2
    abort_trigger := FALSE: ignore_failure := FALSE і  ;3

END;

IF abort_trigger
    THEN IF ignore_failure
           THEN RAISE ignore_trigger_failure;
           ELSE RAISE form_trigger_failure;

    END IF;


                                    -- 30 --



    ELSIF return_code
           THEN GOTO {-1success_label-0 і step_n+1};
    ELSE GOTO {-1 failure_label-0 і step_n+1};

END IF;
где:
;1          Используется только при включенной характеристике Abort On Failure

;2             Используется при включенных характеристиках шагов триггеров
               Abort On Failure и Succeed on Abort

;3             Используется, если не  включенны характеристики  шагов
               триггеров Abort On Failure и Succeed on Abort

step_n         Определяет номер для шага
step_label     Определяет  метку для  шага. Метка шага предшествует номеру
               шага (step_n)
step_logic     Определяет трансляцию шага оператора

success_label  Специфицирует характеристику шага триггера Success Label, если
               она существует

step_n+1       Определяет  номер  следующего  шага  в последовательности

failure_label  Специфицирует характеристику шага триггера Failure Label для
               шага, если он определен

Замечение:  Если любая из  success_label, failure_label, step_label,   или
            step_n   приводит   к несуществующим  меткам, замените  оператор
            GOTO выражением RAISE ignore_trigger_failure.

Аналоги:  PL/SQL                                15-1


        Трансляция  SQL

  Переведите шаги триггера, содержащие  операторы  SQL в операторы PL/SQL.
Существует два типа шагов SQL, которые вам может понадобиться перевести:
              - шаги, содержащие операторы SELECT
              - шаги, содержащие фразы DML

Трансляция    Существует два типа операторов SELECT, которые вам может
операторов    понадобиться перевести:
SELECT
              - операторы  с предложениями INTO
              - операторы без предложений INTO

Помните, что вы должны  специальным образом учитывать операторы, сравнивающие
поля   или   выполняющие математические выражения. Вы можете записывать их как
булевы  выражения. Такое  приближение  позволяет  вам экономить ресурсы базы
данных, убыстряет  выполнение и  легко  считывается.  Например, рассмотрим
триггер, содержащий  следующие  шаги:

STEP1          Success Label = STEP 3
               Failure Label = STEP 2
               SELECT 'X ' FROM DUAL
               WHERE :SAL > : ENDRTIG;


                                    -- 31 --



STEP2          #EXEMACRO MESSAGE 'Comission cannot be
               greater than salary.'; ENDTRIG;

STEP3          #EXEMACRO NXTFLD;

Вы должны преобразовать эти операторы в следующий одиночный оператор PL/SQL:
IF : SAL > :COMM
     THEN NEXT_FIELD;
     ELSE MESSAGE ('Commission cannot be greater than
     salary.');
END IF;

Для операторов  SELECT без  предложений INTO необходимо добавить  следующие
пункты к секции DECLARE шаг_блок:

FAIL EXEPTION;
dummy_into_buffer CHAR (240);
CURSOR dummy_select_into_cursor IS

    SELECT select_list
    FROM    table_list
    [where_clause]

Ниже представлен текст шага_алгоритма для оператора SELECT без предложения INTO
OPEN dummy_select_into_cursor;
FETCH dummy_select_into_cursor
    INTO dummy_into_buffer;

IF dummy_select_into_cursor #NOTFOUND
    THEN RAISE fail;
END IF;

Для операторов SELECT c фразой INTO в секцию DECLARE добавляются следующие
пункты:

CURSOR DUMMY_SELECT_INTO_CURSOR IS
    SELECT select_list
    FROM   table_list
    [where_clause]

Ниже представлен текст алгоритма для операторов SELECT без фразы INTO:

OPEN dummy_select_into_cursor;
FETCH dummi_select_into_cursor
    INTO :[block.]field_name], :[block.]field_name2,...;

IF dummy_select_into_cursor #NOTFOUND
    THEN RAISE fail;
END IF;


Транслиро-    Для операторов DML (кроме SELECT) используйте следующий
вание         код:
операторов
DML           DML_statement;




                                    -- 32 --



              IF SQL#NOTFOUND
                  THEN RAISE fail;
              END IF;

              где DML_statement прямая копия шага.

              Замечание:  SQL - это имя курсора по умолчанию.

Транслиро-    Операторы   функционального   кода   следующей   формы
вание         транслируются  в  соответствующую  пакетную  процедуру
операторов    SQL*Forms:
функциональ-
ного кода     #EXEMACRO function_code; [function_code;
              function_code;...]

              Помните,  что   некоторые   функциональные   коды   не
              транслируются  напрямую  в пакетные  процедуры  V3.

              Аналоги:  Сравнение  функциональных  кодов  V2
                        c эквивалентами V3  F-36

Транслиро-    Операторы  CASE  транслируются  в  PL/SQL  с  помощью
вание         операторов  IF и ELSIF и ELSE. Следующий оператор CASE
операторов CASE

CASE selector IS
    WHEN criteria_1 THEN action_list_1
    WHEN criteria_2 THEN action_list_2
    WHEN OTHERS THEN action_list_3
END CASE;

   транслируется следующим образом:

IF selector = criteria_1
    THEN action_list_1;
    ELSIF selector = criteria_2
    THEN action_list_2;
    ELSE action_list_3;
END IF;

Аналоги:  Оператор CASE  F-38


Транслиро-    В  данном  разделе  рассказывается  о  том,  как  нужно
вание         транслировать SQL*Forms команды, отличные от #EXEMACRO.
команд
SQL*Forms

#COPY         В  большинстве  случаев #COPY  транслируется  в оператор PL/SQL.
              Если  исходный пункт  или пункт  назначения  не является
              косвенным  при   использовании   ссылочных переменных, то
              команда  #COPY  транслируется  следующим образом:

              Команда V2

              #COPY {sourse і quoted_string} [INTO] [:]target[;]

              транслируется как:

                                    -- 33 --



              :target := {sourse і quoted_string};

        #ERASE
  Команда #ERASE транслируется прямо в пакетную процедуру, как указано в
следующем примере. Команда #ERASE

#ERASE {[&]GLOBAL.variable_name і [&][block.] field_name}[;]

транслируется как:

ERASE({[NAME_IN(]'GLOBAL.variable_name'[)] і[NAME_IN(]'[block.] field_name'});

Аналоги:  Пакетная процедура ERASE              16-14

        #HOST

Команда #HOST транслируется в пакетную процедуру SQL*Forms, как показано в
следующем примере.
Команда #HOST

#HOST {quoted_string і &{[block] field_name і GLOBAL.variable_name})[;]

транслируется как:

#HOST ({quoted_string і NAME_IN ('{[bock] field_nameі GLOBAL.variable_name]});

Аналоги:  Пакетная процедура HOST               16-18

Транслиро-    Вызов пользовательского выхода выполняется как указано
вание         ниже. Вызов в следующей форме
пользова-
тельского     # [#] user_exit_name_parameter_list
выхода
              транслируется как:

              USER_EXIT ('user_exit_name'.'parameter_list');

              Аналоги:  Пользовательский выход, вызов из триггера V3


        Изменение типов данных

Версия  3.0 полностью полностью поддерживает типы данных ORACLE RDBMS. В
предыдущих  версиях SQL*Forms cо  всеми типами  данных манипуляции производи-
лись как со строками символов, а в  версии  3.0, все  действия проводятся с
ними, как с реальными типами данных. Эти изменения могут вызвать проблемы при
расширении прикладных  программ в версии 3.0.

Начиная с версии 2.3 SQL*Forms, вы можете создавать поля DATE,  в  которых
допустимым   являются  употребление как двухзначных  чисел  для  обозначения
года,  так  и четырехзначных. Если  оператор вводит дату, а поле имеет
достаточный  участок памяти  для  четырехзначного числа, то   оператор   может
ввести   все  четыре  цифры  или последние  две.

Например,  если   оператор   вводит  31-DEC-88  в  поле, имеющее  достаточный
участок памяти для  четырехзначного числа,  то  SQL*Forms   интерпретирует
эту  дату,  как 31-DEC-0088. Такое  функционирование  связано  с  языком SQL
и  должно  быть  сохранено,  когда  вы  определяете поля  DATE.

                                    -- 34 --



Чтобы  модифицировать   существующее  поле  DATE  таким образом, чтобы оно
показывало четырехзначное обозначение года, необходимо увеличить поле даты на
два пробела, для чего используйте [Resize Field].

Замечание:  Это  свойство  не  относится  к  полям  JDATE и EDATE.


        Приложение  С

              A D V I S O R Y  ( У К А З А Н И Я )

Вданном приложении  представлена  информация о том, что может влиять на
эффективность  работы и  нарушать ваши прикладные программы.

Эта  информация  разделена  на  главки. Каждое  указание сопровождается
списком аналогов, дающим справку о том, в какой части  руководства вы можете
найти соответствующую информацию.

Глава         Указания                           Аналоги
----------------------------------------------------------------------
Фундамен-     Не пытайтесь переделывать путь     Путь передвижения 3-4
тальная       передвижения, помещая команды
обработка     передвижения  в  триггеры,
              запускаемые во время передвижения.

              Убедитесь, что после проверки не   Проверка полей 3-9
              изменилась величина проверяемого
              поля.

              Не начинайте связь с базой данных  Блокировка 3-15
              или прокрутку назад, когда SQL
              оператор находится в триггере.

              Избегайте помещать исключающие     Блокировка 3-16
              блокировки в таблицы прикладных
              программ.

              Будьте осторожны при изменении     Изменение данных 3-21
              данных  в полях  базы данных
              через триггеры во время процесса
              связи.

              В режиме Enyer Query триггеры не   Режим Enter Query 3-29
              запускаются.

----------------------------------------------------------------------
Концепция     Проектируйте новые прикладные      Версии триггеров
триггеров     программы с триггерами V3,         V2 V3  4-2
              триггеры типа V2 замените
              триггерами V3.

              Cледуйте   правилам   по           Выполнение операторов
              использованию операторов DML       SQL  4-5
              (Data Manipulation Language)
              в триггерах.




                                    -- 35 --



              Не используйте операторы DDL       Выполнение операторов
              (Data Definition Language)         SQL  4-5
              в триггерах.

----------------------------------------------------------------------
Страницы      При определении верхних страниц,   Характеристика
              следуйте правилам размещения и     размещения
              размеров  отображения.             отображения  10-8

                                                 Характеристика размещения
                                                 страницы  10-9

                                                 Характеристика размеров
                                                 отображения  10-9

----------------------------------------------------------------------
Блоки         Существует нижний предел числу     Характеристика
              записей, которые могут быть        блока Records
              буферированы в одном блоке.        Buffered  11-15

              Если оператору нужно вставить      Характеристика
              записи в форму, то невыделенный    блока Select
              столбец в базе данных должен       Column  11-16
              быть определен не как NOT NULL.

              Если вы хотите установить          Конфигурация
              конфигурацию хозяин-подчиненный    хозяин-подчиненный
              автоматически, вы должны создать   (Master-detail)  11-20
              сождать рабочий блок в форме
              Default Block.

----------------------------------------------------------------------
Поля          Будьте   осторожны   при           Характеристики
              комбиннировании характеристик      полей  12-4
              полей, комбинация должна иметь
              смысл.

              Вы не  можете прямо запрашивать    Тип данных LONG  12-8
              поле  LONG  в  фразах WHERE или
              ORDER BY любого оператора SELECT.

              Чтобы  избежать  ослабления        Характеристика
              соотношений  "чужой  ключ",        Enforce Foreign
              вам необходимо координировать      Key 12-12
              использование характеристик полей
              Enforce Foreign Key и Input Allowed.

              Для полей с типом данных NUMBER    Характеристика поля
              вы должны быть убеждны, что длина  Field Length  12-14
              поля достаточна для того, чтобы
              не произошло усечения.

              Вы не можете создавать поля,       Характеристика поля
              основой которых служит столбец,    Field Name  12-14
              имя которого содержит пробелы.




                                    -- 36 --



              Когда вы устанавливаете длину      Характеристика поля
              для поля, вы должны оставлять      Format Mask  12-15
              место для элементов формата маски.

              Длина дла поля запроса всегда      Характеристика поля
              должна быть больше или равна       Query Length  12-21
              длине поля.

              Когда вы хотите вырезать и         Характеристика поля
              вставить поля в "экранном          Sequence Number 12-22
              живописце", SQL*Forms изменяет
              значение порядкового номера по умолчанию.

----------------------------------------------------------------------
Триггеры      Если вы изменяете имя именного     Характеристика
              триггера   пользователя   в        триггера Trigger
              существующих   прикладных          Name  14-7
              программах, убедитесь в том,
              что вы также изменили все ссылки.

              Помните, какие команды являются    Типы триггеров  14-18
              допустимыми в различных триггерах.

              Во время передачи транзакций       Триггер On-Delete 14-13
              тригггеры On-Insert, On-Update     Триггер On-Insert 14-14
              и On-Delete заменяют выполнение    Триггер On-Update 14-16
              SQL*Forms действий по умолчанию,
              такие как вставка, изменение и
              уничтожение.

              Триггеры On-Error и On-Message     Триггер On-Error 14-14
              заменяют запись сообщений по       Триггер
              умолчанию.                         On-Message  14-15

              Триггер  On-Lock  заменяет         Триггер On-Lock   14-15
              выполнение SQL*Forms действий
              по блокированию строк.

              Вместо именных триггеров           Именные триггеры
              пользователя, используйте          пользователя  14-25
              процедуру форма-уровень.
              умолчанию.

----------------------------------------------------------------------
PL/SQL        Придерживайтесь правил,            PL/SQL, ограничения
              относящихся к процедурам PL/SQL,   внутри SQL*Forms 15-7
              касающихся объектов и функций
              SQL*Forms.

              Если ваши прикладные программы     Пакетная процедура,
              поддерживаются многими языками     отказ  15-8
              программирования, не
              употребляйте входных триггеров,
              зависящих от пакетной процедуры
              ERROR_TEXT.




                                    -- 37 --



----------------------------------------------------------------------
Пакетная      Следуйте правилам, относящимся     Пакетная процедура
процедура     к отображению, сдвиганию, заданию  ANCHOR_VIEW  16-5
              размеров, при работе с верхними    Пакетная процедура
              страницами.                        HIDE_PAGE  16-18
                                                 Пакетная процедура
                                                 MOVE_VIEW  16-20
                                                 Пакетная процедура
                                                 RESIZE_VIEW  16-25
                                                 Пакетная процедура
                                                 SHOW_PAGE  16-28

              Если вы используете операторы      Пакетная процедура
              PL/SQL COMMIT или ROLLBACK         CLEAR_FORM  16-9
              в анонимном блоке иле процедуре    Пакетная процедура
              форма-уровень, SQL*Forms           COMMIT_FORM  16-10
              интерпретирует  эти операторы
              как COMMIT_FORM и CLEAR_FORM
              соответственно.

              Осведомляйтесь о пакетных          Пакетная процедура
              процедурах   ENTER_QUERY           ENTER_QUERY  16-15
              или  EXECUTE_QUERY,  при           Пакетная процедура
              употреблении   параметров          EXECUTE_QUERY  16-15
              ALL_RECORDS  и  FOR_UPDATE.

              Придеоживайтесь соответствующих    Пакетная процедура
              правил, когда используете          SET_FIELD  16-26
              пакетную процедуру SET_FIELD
              для модификации характеристик
              полей.

              Некоторые процедуры являются       Защищенные пакетные
              защищенными   и   могут            процедуры  16-29
              использоваться только в некоторых
              триггеров.

----------------------------------------------------------------------
Пакетные      В V3 триггерах вместо ссылочных    Пакетная функция
функции       переменных используйте пакетную    NAME_IN  17-10
              функцию NAME_IN.


----------------------------------------------------------------------
Переменные    SYSTEM.CURRENT_BLOCK,              SYSTEM.CURRENT_BLOCK
              SYSTEM.CURRENT_FIELD и             18-5
              SYSTEM.CURRENT_VALUE включены      SYSTEM.CURRENT_FIELD
              в версию 3.0 SQL*Forms.            18-6
              Корпорация Oracle рекомендует вам  SYSTEM.CURRENT_VALUE
              альтернативную   системную         18-6
              переменную, предусмотренную в
              версии 3.0.

              Вы не можете использовать          SYSTEM.MESSAGE_LEVEL
              системную переменную               18-10
              SYSTEM.MESSAGE_LEVEL для подавления
              предложений  или сообщений об
              ошибках.

                                    -- 38 --



----------------------------------------------------------------------
Пользова-     Не проводите прокрутку назад или   Операторы EXEC SQL
тельские      связь с базой данных в             19-4
выходы        пользовательских выходах или если
              в формах есть изменения, не
              переданные в базу данных при вызове
              пользовательского выхода.

              Следуйте правилам, относящимся к   Пользовательские
              именным выходам пользователя и к   выходы, защита 19-8
              выполнению I/O из пользовательского
              выхода.

              Версии тестов пользовательских     Таблица IAPXTB  19-9
              выходов необходимо держать в
              отдельной таблице IAPXTB.

----------------------------------------------------------------------
Работа        SQL*Forms не поддерживает          Условные обозначения,
с объектами   условных обозначений с двойными    объекты  20-2
              кавычками, принятые в ORACLE.

              Не используйте служебных слов      Служебные слова  20-2
              ORACLE для идентификации объектов
              SQL*Forms.

              Осведомляйтесь  о  защиту          Модифицированные
              при модификации объектов ссылок.   объекты ссылок  20-4

----------------------------------------------------------------------
Ограничения   Осведомляйтесь   о   главных       Ограничения
целостности   ограничениях целостности объектов  целостности  22-1
              и курсоров, а также об
              ограничениях целостности памяти
              вашей операционной системы.

----------------------------------------------------------------------
Компоненты    Бессмысленные   комбинации         Комбинирование
              переключателей командной строки    переключателей
              могут вызвать ошибку, когда вы     командной строки 23-8
              попытаетесь выполнить команду.

              Следующие переключатели не         -n переключатель для
              действуют в версии 3.0 SQL*Forms:  SQL*Forms
                                                 (Проектирование) 23-12
              -n переключатель для SQL*Forms     -o переключатель для
              (Проектирование)                   SQL*Forms
                                                 (Генерирование) 23-14
              -o переключатель для SQL*Forms     -s переключатель для
              (Генерирование)                    SQL*Forms (Генерирование)
              -s переключатель для SQL*Forms

              -o переключатель для SQL*Forms     -o переключатель для
              (Текущая форма)  не оказывает      SQL*Forms (Текущая
              влияния на операторы в триггерах   форма)  23-18
              V3.



                                    -- 39 --



              -t переключатель для SQL*Forms     -t переключатель для
              (Текущая форма) не оказывает       SQL*Forms (Текущая
              никакого влияния при замене        форма) 23-20
              стандартного процессирования
              SQL*Forms на On-Insert, On-Update
              и On-Delete триггеры.


----------------------------------------------------------------------
Запоминание   Не пытайтесь пересылать формы      Мобильность между
форм          из одного типа комппьютера на      системами  24-3
              другой, пересылая INP файл.

              Не импортируйте и не экспортируйте Мобильность между
              таблицы IAP 11 unless 11 конечная  системами  24-3
                          ------------
              система не имеет форм в базе данных.

              Oracle Corporation сохраняет за    Базовые таблицы
              собой право изменять базовые       SQL*Forms
              таблицы SQL*Forms (Проектирование) (Проектирование)
              в любое время без уведомления.     24-4

              Не работайте с базовыми таблицами  Базовые таблицы
              SQL*Forms (Проектирование) через   SQL*Forms
              SQL*Plus.                          (Проектирование)

              Редактирование INP файлов может    Формат INP файла 24-13
              нарущить ваши прикладные программы.
              Oracle Corporation не поддерживает
              редактирование этих файлов.

----------------------------------------------------------------------
Связь         Не пользуйтесь вызываемой формой   Вызов форм из
с другими     из   выхода   пользователя.        программ  25-10
продуктами    Применяйте пакетную процедуру CALL.

----------------------------------------------------------------------
Опции         Рабочая опция Share Cursors for    Рабочая опция
              Implicit SQL не оказывает никакого Share Cursor for
              воздействия, если вы заменяете     Implicit SQL  26-4
              стандартное   процессирование
              SQL*Forms на триггеры On-Insert,
              On-Update и On-Delete.

              Рабочая опция Share Cursors for    Рабочая опция
              Implicit SQL не оказывает никакого Share Cursor for
              воздействия   на   операторы  в    Implicit SQL  26-4
              триггерах V3.

----------------------------------------------------------------------
Специальные   Если вы проектируете форму для     Среда блочного
соображения   среды блочного режима или в ней,   режима  D-2
              необходимо  осведомляться  о
              специальных соображениях.




                                    -- 40 --



              Если вы проектируете форму для     Среда блочного
              растровой  среды  или  в  ней,     режима  D-2
              необходимо  осведомляться  о
              специальных соображениях.


Приложение  D
              C П Е Ц И А Л Ь Н Ы Е   С О О Б Р А Ж Е Н И Я

   SQL*Forms  работает в системах различных  конфигураций.  В данной части
приводится описание того, как SQL*Forms работает в среде  текстового  режима.
Описание  хорошо подходит  ко  всем  средам,  но  существуют  некоторые
различия,  о которых  вы должны быть осведомлены, когда разрабатываете свои
прикладные  программы  вне  среды текстового  режима и/или если ваши
прикладные программы операторы выполняют  вне  среды  текстового  режима.

В данном приложении обсуждаются специальные соображения относительно
разработки прикладных  программ  SQL*Forms в следующих средах:
  - среда блочного режима
  - растровая среда

Аналоги:  Ограничения целостности 16-битовой среды  22-4

        Среда блочного режима

   Если вы разрабатываете прикладные программы  SQL*Forms в  среде  блочного
режима, вам необходим учитывать правила, относящиеся  к  следующим действиям:
   - установка проверочной единицы
   - использование триггеров
   - создание полей

Помните также о следующих моментах, характерных  для использования терминалов
блочного режима:
   - Терминал  блочного режима, в  отличие от  терминала символьного режима,
     не распознается, когда оператор заново вводит текущее значение поля в
     поле.
   - Первая буква  выбора  меню не  работает в терминале блочного режима.
   - В среде блочного режима SQL*Forms действует всегда, когда включены
     характеристики поля Automatic Hint.

Аналоги:  Характеристика поля Automatic Hint  12-3
          Cостояние проверки поля, Changed  3-7


Установка     В среде  блочного  режима  проверочной  единицей  по
проверочной   умолчанию является блок. Поскольку вы можете определять
единицы       проверочную  единицу в данной  среде, ваши формы будут работать
              медленнее с проверочными  единицами поля или записи из-за
              возросшего числа главных прерываний.

Если вы проектируете прикладные программы,  которые будут  работать в среде
блочного режима, а вы работаете в среде  текстового  режима, используйте
рабочую опцию Set Block Validation as Default. Эта  опция определяет блок, а
не поле в  качестве  проверочной  единицы, что облегчает вам создание и
тестирование формы, работающей в терминале блочного режима.

Аналоги:  Рабочая опция Set Block Validation as Default
          Проверочная единица  3-7

                                    -- 41 --




Использо-     По умолчанию, формы, проектируемые вами в среде блочного
вание         режима,  будут  применять  проверочную  единицу  блока.
триггеров     В  результате, когда вы  проектируете формы, вы должны
в блочном     обязательно  учитывать, что  SQL*Forms  запускает только
режиме        триггеры  передвижения   (т.е.  Post-Field, Pre-Block) c уровнем
              разрешения   большим  или  равным  проверочной единице.  Если вы
              используете проверочную единицу поля в среде блочного режима, то
              порядок, в котором оператор двигается из поля в поле, является
              функцией используемого  терминала.

              Аналоги:  Триггеры, уровень разрешения  4-2

Создание      Если вы  разрабатываете формы, которые  будут  работать
полей в       в  среде  блочного  режима, то  при  создании полей вы
блочном       должны придерживаться следующих правил:
режиме
- В форме перед и после  каждого поля  должны стоять пробелы. При таком
  формате резервируется место для файла  свойств, идентифицирующего  качества
  полей.  Если  между  двумя  полями  или  полем и  текстовой константой  нет
  пробелов,  то  форма   не  будет выполняться.  Помните, что  при  создании
  блока по умолчанию   пробелы  вставляются  автоматически.

- Старайтесь не располагать часть поля или текстовой константы в последнем
  столбце экрана.

- Убедитесь  в том, что поле или текстовая константа не располагаются вне
  границ поля зрения, поскольку это  может  привести  к  ошибкам  на
  последующеих страницах.


Использо-     В некоторых  терминалах,  пользующихся  средами  блочного
вание         режима, используется прокрутка полиэкрана, прокручивающая
текстовых     целую  экранную  линию за  один раз. Это  может вызывать
констант      нежелательные моменты, если  вы имете текстовые константы
в блоковом    в той же  строке,  что  и  поле, принадлежащее  блоку  с
режиме        множеством  записей. Когда  запись  этого  блока  уходит с
              экрана  при  прокрутке,  текстовая  константа  также исчезает из
              поля  зрения.  Рис. 1  демонстрирует  такой случай.

Рисунок D-3   Ъ------------------------------------------------------Дї
Прокрутка     і                                                       і
текстовой     і Before Scrolling              After Scrolling         і
константы     і Ъ------------------ї          Ъ------------------Дї   і
              і іEmplouer Emplouer і          іEmplouer Emplouer  і   і
              і іNumber   Name     і          іNumber   Name      і   і
              і і7369     SMITH    і       Ъ>  7521     WARD       <ї і
              і і7499     ALLEN    і       і  і7566     IONES     і і і
              і і                  і       і  і                   і і і
Текстовые     і А------------------Щ       і  А------------------ДЩ і і
константы   --Е----------------------------Б------------------------Щ і
ушедшие с     і                                                       і
экрана        А------------------------------------------------------


        Растровая среда



                                    -- 42 --



   Если вы разрабатываете прикладные  программы  SQL*Forms в растровой среде,
вы должны иметь информацию о том, чем пользовательский  интерфейс здесь иной,
чем в текстовом режиме.  А  именно, существует разница  в использовании
функциональных  клавиш.

Если вы разрабатываете прикладные  программы SQL*Forms, которые будут работать
в растровой среде, вы должны знать, как  изменится  передвижение (navigation),
если оператор  воспользуется  мышью.

Элементы      В растровых средах интерфейс SQL*Forms (Проектирование)
сопряжения    может иметь отличия от того как он описывается в данной
в растровой   книге.  Например,  контролбный  блок  может  оказаться
среде         реальным блоком вместо пункта в скобках. Такие различия
              возникает,  поскольку  SQL*Forms  использует  элементы
              сопряжения с растровыми системами в натуральной форме.


Функциональ-  В растровых средах вы можете пользоваться функциональными
ные клавиши   клавишами  SQL*Forms   для   выполнения   стандартных
в растровой   проективных   функций.  Однако, вам  может  понадобиться
среде         возможность  воспользоваться  мышью для выполнения этих функций.

              [Select]    Нажмите и отпустите мышь на выбранном вами пункте.
                          Вы можете также использовать мышь для включения и
                          выключения контрольного блока.

              Все другие  Если функциональные клавиши соответствуют кнопкам на
                          вашем экране, нажмите и  отпустите мышь на кнопке,
                          соответствующей желаемой функции.

Перемещение   Если вы  разрабатываете  прикладные программы  SQL*Forms
в растровой   для работы  в  растровой среде, обратите особое внимание
среде         на  характеристику  формы  Mouse  Navigation  Limit. Эта
              характеристика  определяет, какое поле (или какие поля) оператор
              может  сделать  текущими  в  любой  момент с помощью мыши.

              По умолчанию, оператор может нажать и отжать (click on) любое
              поле  формы.  Однако вам  может  понадобиться установить  защиту
              для  ваших  прикладных  программ от действий  оператора.


KOAP Open Portal 2000



Яндекс цитирования