|
Глава 25
С В Я З Ь С Д Р У Г И М И П Р О Д У К Т А М И
В данной главе рассматриваются возможности связи с рядом продуктов ORACLE
из прикладных программ SQL*Forms. Представлены следующие темы:
- связь с ORACLE RDBMS
- связь с прикладными разработками вспомогательных программ
- использование перетрансляций ORACLE с помощью SQL*Forms
- использование вызываемых форм
- использование Oracle*Terminal
Связь с ORACLE RDBMS
SQL*Forms полностью интегрирована с версией 6.0 ORACLE RDBMS. Все
прикладные прграммы SQL*Forms основаны на данных ORACLE RDBMS. Эти
данные находятся в таблицах вместе со словарем данных.
SQL*Forms обращается к данным, находящимся в базе данных, в которую вы
вошли. По умолчанию SQL*Forms входит в локальную базу данных вашей
машины. Однако, вы можете связаться с удаленной базой данных с помощь
SQL*Net.
Когда вы создаете блок по умолчанию, словарь данных обеспечивает
SQL*Forms данными, необходимыми для создания блока. SQL*Forms
выполняет по умолчанию следующие действия:
- выводит имена полей из столбца имен в таблице базы данных
(т.е., определяет характеристику поля Field Name)
- выводит длины полей и отображает их исходя из типов данных
ORACLE и ширины столбца (т.е., определяет характеристики полей
Field Length и Display Length)
- переводит типы данных базы данных в типы данных SQL*Forms
(например, специфицирует характеристику поля Data Type)
- обозначает поля, соответствующие ненулевым столбцам базы
данных, как требуемые поля (т.е., присваивает характеристику поля
Required)
Дополнительно, SQL*Forms может выполнять следующие действия:
- определяет допустимую область значений для полей из таблиц базы
данных и ограничений целостности столбца (т.е. записывает триггеры
On-New-Record, On-Validate-Field и On-Validate-Record.
- переводит ограничения целостности ссылок в главное (задающее)
отношение между блоками
Аналоги: Удаленный вход
Cвязь со вспомогательными программами развития
SQL*Forms может связываться сс следующими прикладными вспомогательными
программами:
- SQL*Menu
- SQL*Plus
- SQL*ReportWriter
-- 253 --
Связь с SQL*Menu
--------
Вы можете активизировать версию 5.0 SQL*Menu через SQL*Forms в
объединенные меню в любые прикладные программы SQL*Forms. SQL*Forms
позволяет вам выполнять следующие задания:
- определять соотношения по умолчанию между прикладными программами
SQL*Forms и прикладным меню SQL*Menu
- проявлять, делать невидимыми и перемещать меню через пакетные процедуры
SQL*Forms - передавать данные от формы к меню и обратно
За более подробной информацией об установке и работе прикладных программ
SQL*Menu обращайтесь к SQL*Menu User's Guide and Reference.
Спецификация информации меню по yмолчанию
--------
Вы можете специфицировать соотношение по умолчанию между прикладными
программами SQL*Forms и прикладными программами SQL*Forms через форму
Form Definition. Следующие характеристики формы определяют соотношения:
Default Menu Специфицирует прикладную программу
Application меню, которую SQL*Forms активизирует при выполнении формы.
Starting Menu Cпецифицирует меню, которое SQL*Forms Name отобразит при
выполнении формы.
Menu Security Определяет ряд привилегий, которые
Group SQL*Forms будет использовать для прикладных программ
меню, которые определяют опции меню, предназначенные для
отображения.
Во время выполнения формы, SQL*Menu активизирует прикладные программы
меню по умолчанию и отображает запуск меню в верхней части экрана
(перекрывая часть отображенной формы), указывая на опции, являющиеся
разрешенными для специфицированной группы защиты.
Аналоги: Характеристика формы Default Menu Application
Характеристика формы Menu Security Group
Характеристика формы Starting Menu Name
Управляющие меню пакетных прцедур
-------
SQL*Forms обеспечмвает выполнение следующих пакетных процедур,
позволяющих вам показывать, делать невидимым и перемещать меню SQL*Menu в
прикладных программах SQL*Forms.
HIDE_MENU Деляет невидимым текущее меню.
SHOW_MENU Отображает текущее меню.
REPLACE_MENU Перемещает текущее меню и позволяет вам изменять способ
отображения и группу защиты, используемую SQL*Forms
для определения опции меню, которую необходимо отобразить.
С помощью зтих пакетных процедур вы можете контролировать отображение
меню во время сеанса SQL*Forms (Текущая форма) через триггеры или передать
контроль операторам через неопределенные функциональные клавиши.
Примеры Cледующий ключевой триггер выполняет запрос в блоке ODERES и
затем запускает меню DETAIL:
-- 254 --
EXECUTE_QUERY;
REPLACE_MENU ('DETAIL');
GO_BLOCK ('ORDERS');
Когда триггер запускает меню DETAIL, одна из отображаемых
опций будет такой: "Show Associated Item Records". Эта опция
специфицирует следующий текст триггера:
GO_BLOCK ('ITEMS);
EXECUTE_QUERY;
Если оператор выбирает "Show Associated Item Records", SQL*Menu
передает текст триггера SQL*Foprms для выполнения. Текст
выполняется как часть исходного ключевого триггера, который
запускает меню. Когда переданный текст выполнен, SQL*Forms
продолжает выполнение остальных ключевых триггеров. Это значит, что
после того как SQL*Forms запрашивает блок ITEMS, она возвращает
курсор обратно в блок ORDERS.
Аналоги: Пакетная процедура HIDE_MENU 16-17
Пакетная процедура REPLACE_MENU 16-24
Пакетная процедура SHOW_MENU 16-27
Передача Форма и меню могут обмениваться данными посредством
данных глобальных и системных переменных. Формы и меню могут
между оперировать одними и теми же глобальными и системными
формой переменными во время совместного сеанса SQL*Forms
и меню (Текущая форма) и SQL*Menu.
Прикладные SQL*Forms обеспечивает функционирование прикладных
программы программ меню по умолчанию. Эти прикладные программы
меню по позволяют оператору выполнять большинство функций
умолчанию SQL*Forms (Текущая форма) без нажатия функциональных клавиш.
Поскольку эти прикладные программы меню по умолчанию включены в
SQL*Forms, вы можете использовать их даже не имея допуска к SQL*Menu.
Описание прикладных программ: Названием этих прикладных программ
является имя формы, запускающей их. Основная часть меню состоит из
следующих опций.
Action Запускает подменю, которое связано с
главными функциональными клавишами:
Choise Function Key
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Rollback [Clear Form/Rollback]
Commit [Commit]
reFresh [Refresh]
Print [Print]
Exit [Exit/Cancel]
В режиме ввода запроса Commit и Exit не используются.
Block Запускает подменю, обеспечивающее альтернативу,
связанную с функциональными клавишами выполнения блока:
Choice Function Key
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Previous [Previous Block]
Next [Next Block]
Clear [Clear Block]
В режиме ввода запроса Previous и Next не используются.
-- 255 --
Reord Активизирует подменю, обеспечивающее альтернати вы,
связанные с функциональными клавишами операции
записывания. Заметте, что две альтернативы - First и
Last - связаны с функциями, несоответствующими обычным
образом функциональным клавишам.
Choice Function Key
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Previous [Previous Record]
Next [Next Record]
First FIRST_RECORD
Last LAST_RECORD
scroll Up [Scroll Up]
Scroll down [Scroll Down]
Clear [Clear Record]
Remove [Delete Record]
Insert [Insert Record]
Duplicate [Duplicate Record]
Lock [Lock Record]
Field Активизирует подменю, обеспечивающее альтернативы,
связанные с функциональными клавишами операции
записывания.
Choice Function Key
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Previous [Previous Field]
Next [Next Field]
Clear [Clear Field]
Duplicate [Duplicate Field]
Query Активизирует подменю, обеспечивающее альтернати-
вы, связанные с функциональными клавишами запроса.
Choice Function Key
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Enter [Enter Query]
eXecute [Execute Query]
Last [Enter Query]
criteria
Cancel [Exit/Cancel
count Hits [Count Query Hits]
Fetch next [Next Set of Records]
set
Критерий Last и альтернатива Cancel допустимы только в режиме Enter Query.
Help Активизирует подменю, обеспечивающее альтернативы,
связанные со справочными функциональными клавишами.
Choice Function Key
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Help [Help]
Keys [Show Keys]
List [List]
Error [Display Error]
Когда оператор выбирает альтернативу из меню по умолчанию, SQL*Forms
функционирует так, как если бы оператор нажал соответствующую функциональную
клавишу. Такое же функционирование будет и в случае ключевых триггеров.
-- 256 --
Заметим, что не все функциональные клавиши SQL*Forms (Текущая форма)
соответствуют альтернативам меню. Большинство из неназванных клавиш
являются клавишами управления курсорм.
Использование прикладных программ: Вы можете использовать это меню по
умолчанию в ваших прикладных программах, специфицируя DEFAULT для
характеристики формы Default Menu Application. Меню отображается по
умолчанию, когда вы выполняете форму.
Замечание: Когда вы создаете форму, SQL*Forms специфицирет DEFAULT для харак-
теристики формы Default Menu Application как значение по умолчанию.
Связь с Вы можете вызвать версию 3.0 SQL*Forms через SQL*Forms.
SQL*Plus Через SQL*Plus вы также можете активизировать прикладные
программы SQL*Forms.
Вызов Чтобы активизировать SQL*Plus через SQL*Forms, необходимо
SQL*Plus использовать следующую пакетную процедуру HOST:
через SQL*Forms HOST ('SQL*PLUS_command') ;
где SQL*PLUS_command специфицирует стандартный оператор входа
SQL*Plus. За более подробной информацией обращайтесь к
SQL*Plus Reference Manual.
Примеры: 1. Cледующий оператор запускает и выполняет
командный сценарий, который называется ORDERRPT:
HOST ('SQL*PLUS scott/trigger @ORDERRPT');
2. Следующий оператор SQL*Forms передает данные
SQL*Plus для SQL*Plus параметров &1,&2.
HOST ('SQL*PLUS scott/trigger
@ORDERRPT' 10 20 ...');
3. Вы можете активизировать SQL*Plus, назвав переменную.
Следующий PL/SQL оператор определяет SQL*Forms переменную,
которая называется my_var и использует переменные для
передачи динамических параметров значений:
my_var : = 'SQL*PLUS scott/trigger
@ORDERRPT' іі global. var_1 іі''
іі global.var_2 ...;
Поскольку вы определили my_var, ваш триггер может вызывать
SQL*Plus с помощью следующего оператора:
HOST (my_var);
Аналоги: Пакетная процедура HOST 16-18
Вызов Вы можете активизировать SQL*Plus (Текущая форма) через
SQL*Plus SQL*Forms. Это значит, что вы можете выполнять
через прикладные программы SQL*Forms. Чтобы это сделать,
SQL*Plus используйте команду RUNFORM. Помните, что вы можете использовать
это свойство, если SQL*Forms установлена определенным образом (как
представлено в SQL*Plus Reference Manual).
-- 257 --
Когда вы применяете команду RUNFORM, используйте стандартный синтак
сис, но не употребляйте имя пользователя и пароль. В этой ситуации
SQL*Forms только принимает текущую входную информацию. Так как
оператор избегает ипользования отдельного входа ORACLE, то активизация
формы будет выполнена быстрее через SQL*Plus, чем из командной
строки. За более подробной информацией о связях с различными входами
ORACLE, обращайтесь к команде CONNECT в SQL*Plus Reference Manual.
Аналоги: Команда RUNFORM 23-7
Связь с Вы можете вызывать SQL*ReportWrighter через SQL*Forms.
SQL*Peport- Это означает, что вы можете генерировать сообщения
Wrighter через прикладные программы SQL*Forms и не пользоваться
входом в SQL*Forms.
Чтобы активизировать SQL*ReportWrighter через SQL*Forms,
используйте следующую пакетную процедуру HOST:
HOST ('(RUNREP_command і SQLREP_command)');
где:
RUNREP_command Определяет стандартную команду входа в
SQL*ReportWriter исполняющую систему
SQLREP_command Определяет стандартную команду входа
в SQL*ReportWriter определяющую систему.
Помните, что вы можете активизировать как исполняющую, так и
определяющую системы. Исполняющую систему вы обычно можете запускать из
SQL*Forms. За более подробной информацией о командах RUNREP и SQLREP
обращайтесь к SQL*Plus Reference Manual.
Примеры: 1.Следующий оператор запускает SQL*ReportWrighter без параметров:
HOST ('RUNREP');
2. Следующий образец запускает SQL*ReportWrighter и передает значения
для параметров RUNREP.
HOST ('RUNREP scott/tiger deptno = 10');
3. Вы можете вызывать SQL*ReportWrighter, назвав переменную. Чтобы
выполнить это действие, необходимо сначала определить переменную.
Следующий оператор определяет переменную SQL*Forms, которая
называется my_var и использует переменные для передачи динамичес-
ких параметров значений:
my_var : = 'RUNREP scott/trigger deptno = 'іі TO_CHAR (:deptno);
Поскольку вы определили my_var, ваш триггер может вызывать
SQL*Plus с помощью следующего оператора: HOST (my_var);
Аналоги: Пакетная процедура HOST 16-18
Использование предкомпиллятора ORACLE с SQL*Forms
--------
SQL*Forms может обращаться к любой предкомпилляционной программе,
созданной вами с помощью версии 1.3 предкомпиллятора ORACLE или с помощью
более поздних версий. Вы можете активизировать программу с помощью пакетной
процедуры USER_EXIT. Взависимости от контекста программы значения могут
передаваться на вход пользователя с помощью SQL*Forms и обратно.
Аналоги: Вход пользователя 19-1
Пакетная процедура USER_EXIT 16-28
-- 258 --
Вызов форм из программ
--------
Команда IAPCAL позволяет вам вызывать прикладные программы SQL*Forms
из любой программы языка С, связанного с SQL*Forms (Текущая форма).
Синтаксис команды IAPCAL позволяет вам специфицировать стандартную
командную строку SQL*Forms (Текущая форма). Это значит, что вы можете
выполнить форму из программы с помощью тех же опций, которые вы можете
использовать из командной строки.
Прототипы и константы для команды IAPCAL находятся в файле iapcal.h
в среде, содержащей ваш SQL*Forms код.
Синтаксис: Cледующий синтаксис является прототипом для функции IAPCAL.
int iapcal (command_line)
text * command_line
где command_line специфицирует командную строку SQL*Forms (Текущая форма)
за исключением ключевого слова RUNFORM.
Оператор IPCAL выполняет форму ORDER_ENTRY с помощью -a, -b и -d
переключателей командной строки:
int iapcal ("-abd order_entry");
Ограничения: При использовании IAPCAL необходимо учитывать следующие oгранич-я:
- IAPCAL не выполняет невных входов в ORACLE RDBMS и игнорирует любые имена
пользователя и ключевые слова специфицированные в командной строке. Вы
должны выполнять вход явно.
- Не используйте пользовательский вход. Это может разрушить все структуры
данных. Вместо этого необходимо использовать пакетную процедуру CALL.
Использование ORACLE*TERMINAL
--------
Oracle*Terminal - это утилита, позволяющая вам создавать и модифицировать
терминал и ключевые определения соответствий. Эта утилита используется во
многих продуктах ORACLE. В версии 3.0 она заменила утилиту CRT.
SQL*Forms (Проектирование) и SQL*Forms (Текущая форма) требуют соответствий
(mappings) для определения способа отображений и функционирования карты кла-
виш. Каждая из этих компонент имеет соответствия по умолчанию для
определенных устройств, которые вы устанавливаете. Однако, с помощью -c
переключателя командной строки вы можете специфицировать альтернативное
соответствие, созданное вами или вашим DBA в Oracle*Terminal.
За более подробной информацией об использовании терминальных определениях и
карты клавиш1! обращайтесь к Oracle*Terminal User's Guide.
Аналоги: -c переключатель для SQL*Forms (Проектирование)
-с переключатель для SQL*Forms (Текущая форма)
Определение SQL*Forms позволяет вам определить 10 функциональных
ключа F0 клавиш SQL*Forms (Текущая форма), которым вы можете
через назначить наладочные операции. Чтобы можно было применить
-- 259 --
ключ F9 эти клавиши в ваших прикладных программах, используйте
Oracle*Terminal для отбражения этих клавиш или последовательнос-
ти клавиш на любые Fn функции (где n - - номер от 0 до 9).
Заметим, что функции F0 через F9 не выполняют никаких действий.
Вы присваиваете желаемие свойства этим клавишам, записав
соответствующие Key-Fn триггеры.
Аналоги: Key-Fn триггеры
Ч А С Т Ь IV Т Е С Т И Р О В А Н И Е
Глава 26 О П Ц И И
В данной главе представлены опции SQL*Forms.
Рассматриваются следующие темы:
- Опции SQL*Forms (Текущая форма)
- Опции SQL*Forms (Проектирование)
- пользовательский файл преимущественного (preference) права
Опции SQL*Forms (Текущая форма)
--------
В SQL*Forms есть опции, позволяющие вам воздействовать на поведение форм,
когда вы выполняете их из SQL*Forms (Проектирование). За одним единственным
исключением, рабочие опции идентичн переключателям командной строки в
SQL*Forms (Текущая форма). Разница состоит в том, что вы используете рабочую
опцию из проективного интерфейса, переключатели командной строки из
командной строки.
Рабочая опция устанавливается из формы Set Options. Все рабочие опции
выключаются по умолчанию. Если вы включили рабочую опцию, то она остается
и действует до выключения или завершения сеанса SQL*Forms (Проектирование).
Пока опция включена, она действует на любую выполняемую вами форму, включая
все формы, вызываемые той ф ормой, которую вы выполняете. Помните, что
рабочая опция не оказывает влияния на определение форм.
Замечание: Вы также можете устанавливать рабочую опцию в пользовательском
файле преимущественного (preference) права.
Buffer RECORD
Рабочая опция Buffer Record сохраняет память во время работы, буферизируя
минимальное число записей - размер блока плюс одна запись. Эта
опция замедляет процессирование.
Если вы выполняете форму из командной строки и хотите использовать эту
опцию, то используйте -b переключатель для SQL*Forms (Текущая форма).
Аналоги: -b переключатель для SQL*Forms (Текущая форма)
Debug Mode
--------
Рабочая опция активизирует режим отладки для сеанса SQL*Forms (Текущая
форма). Режим отладки:
-- 260 --
- отображает сопроводительные сообщения о выполнении триггера и другую
информацию о текущей форме во время работы
- активизирует процессы прерывания, если в любом из триггеров имеется
пакетная процедура BREAK
Если вы выполняете форму из командной строки и хотите использовать эту
опцию, то используйте -d переключатель для SQL*Forms (Текущая форма).
Аналоги: -d переключатель для SQL*Forms (Текущая форма)
Disable Опция Блокирование процессирования (Disable Array
Array Processing) подавляет функционирование массива. По
Processing умолчанию, SQL*Forms устанавливает размер массива в зависимости
от количества строк, отображаемых в одном блоке. В весии 3.0
SQL*Forms вы можете устанавливать размер массива для каждого
блока самостоятельно. Когда вы выбираете эту опцию, размер массива
устанавливается в 1 для всех блоков в данном сеансе.
Если вы выполняете эту форму из командной строки и хотите
использовать эту опцию, то используйте -a переключатель для
SQL*Forms (Текущая форма).
Аналоги: -a переключатель для SQL*Forms (Текущая форма)
Характеристика блока Array Size
Display Опция Display Block Menu автоматически отображает меню
Block Menu блока, когда вы выполняете форму, используя опцию
Execute в меню Action.
Если вы выполняете форму из командной строки и хотите использовать
эту опцию, то используйте -m переключатель для SQL*Forms (Текущая
форма).
Аналоги: -m переключатель для SQL*Forms
(Текущая форма) 23-18
Quiet Mode Опция Quiet Mode активизирует скрытый (quiet) режим, когда вы
выполняете форму, используя опцию Execute в меню Action. В этом
режиме сообщения не сопровождаются звуковыми сигналами. Но с помощью
пакетной процедуры BELL вы можете получать звуковые сигналы.
Если вы выполняете форму из командной строки и хотите использовать
эту опцию, то используйте -q переключатель для SQL*Forms (Текущая
форма).
Аналоги: -q переключатель для SQL*Forms
(Текущая форма) 23-19
Set Block Опция Установление проверки блока по умолчанию (Set Block
Validation Validation as Default) определяет блок, как проверочную
as Default единицу вместо поля).
По умолчанию проверочная единица определяет, когда SQL*Forms
приступает к проверке введенных данных. По умолчанию эта
единица также определяет максимальный размер объекта, которым
оператор может управлять до того. как SQL*Forms приступае к
тестированию.
-- 261 --
Выбор этой опции позволяет вам более легко создавать
и тестировать форму.
Аналоги: Проверочная единица
Общие SQL*Forms по умолчанию присваивает отдельный курсор для
курсоры каждого оператора SQL, который выполняется формой неявно
для как часть переданных или запрошенных данных. Это
неявной убыстряет процессирование, поскольку операторы в каждом
SQL курсоре должны проверяться только при первом выполнении
в сеансе SQL*Forms (Текущая форма), а не при каждом.
Когда вы специфицируете Share Cursors для рабочей опции Implicit
SQL, вы просто присваиваете отдельный курсор каждому курсору
оператора SELECT. Все другие неявные операторы объединяют или
совместно используют курсоры. Такое функционирование сохраняет
память, но замедляет процессирование, поскольку все операторы
SELECT, UPDATE, DELETE и SELECT FOR UPDATE должны проверяться при
каждом выполнении.
Замечание: Общие курсоры для рабочей опции Implicit SQL не
оказывают никакого влияния, если вы заменяете стандартное
процессирование SQL*Forms триггерами On-Insert, On-Delete и
On-Update, поскольку эти триггеры заменяют неявное включение
операторов INSERT, UPDATE и DELETE.
Аналоги: Курсор, база данных 22-3
Общие курсоры для рабочей опции триггера SQL
-t переключатель для SQL*Forms (Текущая форма)
Общие SQL*Forms по умолчанию присваивает отдельный курсор для
курсоры каждого оператора SQL, который выполняется формой неявно
для посредством триггера V2. Это убыстряет процессирование,
триггера поскольку операторы в каждом курсоре должны проверяться
SQL только при первом выполнении в сеансе SQL*Forms
(Текущая форма), а не при каждом.
Когда вы специфицируете Share Cursors для рабочей опции Trigger
SQL, вы просто присваиваете одиночный курсор каждому оператору
SQL в триггере V2. Эти операторы объединяет или совместно
используют курсоры. Такое функционирование сохраняет память,
но замедляет процессирование, поскольку SQL операторы
должны проверяться при каждом выполнении.
Вы можете усовершенствовать это функционирование с помощью
характеристики шага триггера New Cursor Area. Если в шаге
триггера, содержащем оператор SQL, эта характеристика включена,
то SQL*Forms присваивает отдельный курсор для оператора.
Если вы выполняете форму из командной строки и хотите
использовать эту опцию, то используйте -o переключатель для
SQL*Forms (Текущая форма).
Замечание: На операторы в триггере V3 Share Cursor для
триггера SQL не оказывают никакого влияния.
-- 262 --
Аналоги: Курсор, база данных 22-3
Характеристика шага триггера New
Cursor Area F-6
-o переключатель, SQL*Forms
(Текущая форма) 23-18
Share Cursor для рабочей опции
Implicit SQL 24-6
Statistics Рабочая опция Статистика (Statistics) отображает сообщение
в конце сеанса SQL*Forms (Текущая форма), устанавливающее
максимальное количество самостоятельных курсоров,
использовавшихся во время сеанса. SQL*Forms выводит это
сообщение на экран терминала, а не в командную строку.
Опция Statistics также выдает следующее сообщение в базу данных:
ALTER SESSION SET SQL_TRACE TRUE
Эта команда также включает средства трассировки для текущего
сеанса SQL*Forms (Текущая форма). За более подробной
информацией о средствах трассировки - - обращайтесь к ORACLE
RDBMS Performance Turning Guide.
Если вы выполняете форму из командной строки и хотите iспользовать
эту опцию, используйте -s переключатель командной строки для
SQL*Forms (Текущая форма).
Аналоги: -s переключатель для SQL*Forms (Текущая форма)
Опции SQL*Forms (Текущая форма)
--------
В SQL*Forms имеются олпции, позволяющие вам влиять на поведение SQL*Forms
(Проектирование) во время текущего сеанса проектирования.
Вы устанавливаете опцию проектирования с помощью формы Set Options. Все
опции проектирования отключаются по умолчанию. Если опция
проектирования включена, то она остается - и действует - пока вы не
выключите ее или пока не кончится сеанс SQL*Forms (Проектирование).
Помните, что опция проектирования не оказывает никакого влияния на
определения формы.
Замечание: Вы также можете устанавливать опции проектирования в
пользовательском файле преимущественного права.
Disable Опция Блокирования триггера трансляции (Disable Trigger
Trigger Compilation) запрещает SQL*Forms транслировать триггеры
Compilation PL/SQL или процедуру форма-уровень до того как вы
генерируете форму.
Generate Проективная опция Генерирование формы до ее выполнения
Before (Generate Before Executing Form) заставляет SQL*Forms
Executing автоматически генерировать форму до того как она станет
Form ее выполнять. Когда вы выполняете форму с помощью этой
опции, SQL*Forms выполняет следующие действия:
-- 263 --
- игнорирует диалоговый блок Generate Form и
автоматически создает INP файл и FRM файл с тем же
именем, что и INP файл
- игнорирует диалоговый блок Generate Form и
автоматически выполняет текущий контекст формы
Limit Undo Опция Ограничение буфера отмены до 1 (Limit Undo
Buffer to 1 Buffer to 1) ограничивает работу буфера отмены до
выполнения только одной операции (самой последней).
По умолчанию этот буфер не имеет входных ограничений.
Это свойство является особенно полезным для систем, имеющих
строгие требования к памяти.
Если вы хотите определить это свойство из командной строки
используйте -s переключатель командной строки для SQL*Forms
(Проектирование).
Аналоги: -l переключатель для SQL*Forms
(Проектирование) 23-11
Show List Проективная опция Show List of Values сигнализирует
of Values SQL*Forms о том, что необходимо отобразить верхнее
окно со списком соответствующих значений, когда
дизайнер вводит поле, имеющее список значений.
Suppress Проективная опция Suppress Hints подавляет отображение
Hints подсказок (hints) в строке сообщений SQL*Forms.
Use Formats Проективная опция Use Formats as Default производит
as Default по умолчанию вместо электронной таблицы элемент
сопряжения формы. По умолчанию, когда вы выбираете опцию
меню, такую как Modify from the Block Menu, вы попадаете в
электронную таблицу Block Definition. А при использовании этой
формы, вместо нее появляется форма Block Definition. [Change
Display Type] позволяет вам отобразить соответствующую
электронную таблицу.
Пользовательский файл преимущественного права
Вы можете создавать пользовательский файл преимущественного права, который
автоматически активизирует опции SQL*Forms каждый раз, когда вы входите в
SQL*Forms. Этот файл может содержать ключевые слова и установки, позволяющие
инициализировать любые опции SQL*Forms (Проектирование) и SQL*Forms (Текущая
опция). Например, чтобы убедиться в том, что каждая форма, выполняемая вами
из SQL*Forms (Проектирование) выполняется в скрытом режиме, вы должны
включить следующую строку в пользовательский файл преимущественного права:
QUIET_MODE = ON
Этот файл также позволяет вам инициировать соответствия для SQL*Forms
(Проектирование).
Этот файл также позволяет вам инициализировать соответствия для SQL*Forms
(Проектирование).
-- 264 --
Чтобы быть в действии во время сеанса SQL*Forms пользовательский
файл преимущественного права должен быть назван следующим образом:
SQLFORMS.CFG и должен постоянно находиться в текущей директории.
Если вы входите в SQL*Forms (Проектирование) с помощью переключателя команд-
ной строки, соответствующего опции инициализации проектирования или соответст-
вию, эта командная строка включает отмену установок в пользовательском файле
преимущественного права. Если же командная строка содержит ошибку, то
SQL*Forms игнорирует эту строку, когда считывает файл.
Синтаксис Чтобы инициализировать опции SQL*Forms (Проектирование)
для инициа- или опции SQL*Forms (Текущая форма), включая
лизации соответствующее ключевое слово и установку в
опций пользовательском файле преимущественного права,
используйте следующий синтаксис:
keyword = ON і OFF
В следующей таблице представлены ключевые слова для каждой
из имеющихся в распоряжении опций. Эти ключевые слова
соответствуют именам опций.
Тип опции Ключевое слово
ДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SQL*Forms BUFFER_RECORD
(Текущая DEBUG_MODE
форма) DISABLE_ARRAY_PROCESSING
DISPLAY_BLOCK_MENU
QUIET_MODE
SET_BLOCK_VALIDATION_AS_DEFAULT
SHARE_CURSORS_FOR_IMPLICT_SQL
SHARE_CURSORS_FOR_TRIGGER_SQL
STATISTICS
SQL*Forms DISABLE_TRIGGER_COMPLIMENTATION
(Проекти- GENERATE_BEFORE_EXECUTING_FORM
рование) LIMIT_UNDO_BUFFER_TO_1
SHOW_LIST_OF_VALUES
SUPPRESS_HINTS
USE_FORMS_AS_DEFAULT
Вы можете определить столько опций, сколько вы хотите иметь в
файле, в любом порядке. Помните, что, хотя все опции
выключаются по умолчанию, вы можете выключить их явно.
Синтаксис Чтобы инициализировать соответствия SQL*Forms
для иници- (Проектирование), включая имя соответствия в
ализации пользовательском файле преимущественного права,
соответ- необходимо использовать следующий синтаксис:
ствий
MAPPING = mapping
Глава 27 П Р И К Л А Д Н А Я
Д О К У М Е Н Т А Ц И Я
-- 265 --
В этой главе рассматриваются различные виды прикладной документации, которые
вы можете создавать для формы и хранить в операционной системе.
Представлены следующие темы:
- подробная документация
- документация по полям
- документация по объектам ссылок
- документация по процедурам
- краткая документация
- документация по триггерам
Информация о том, как создавать подобную документацию в данной главе не
представлена.
Замечание: Вы можете соэдавать прикладную информацию только для форм,
имеющихся в текущей памяти или в формате базы данных.
Аналоги: Создание прикладной документации 2-5
Подробная документация
--------
Подробная документация дает подробное описание объектов текущего контекста
формы. В документации имеются объектные характеристики для
следующих объектов SQL*Forms:
- форма
- все блоки формы
- все поля формы
- все триггеры формы
- все процедуры форма-уровень формы
- все страницы формы
Формат: Подробная документация начинается с секций формы, представляющих
следующую информацию:
- характеристики специфицированных форм и имя пользователя,
создающего форму (т.е. владельца)
- процедурная секция, представляющая характеристики процедуры
форма-уровень, принадлежащие форме
- секция триггера, в которой представлены характеристики всех триггеров,
подключенных к форме
В документации также содержатся секции блоков. В каждой блочной секции
имеется следующая информация:
- характеристики блока
- секция триггера, в которой представлены триггерные характеристики всех
триггеров, подключенных к блоку
- секции полей для каждого поля в блоке
В каждой секции поля имеется следующая информация:
- характеристики поля
- секция триггеров, в которой представлена информация по всем триггерам,
подключенным к форме
В конце подробной документации есть страничная секция, в которой
представлены характеристики страниц.
В подробной документации представлены каждый блок и поле, в порядке,
определенном характеристикой блока Sequence Number и характеристикой поля
Sequence Number.
-- 266 --
Аналоги: Блоки, характеристики 11-6
Поля, характеристики 12-4
Формы, характеристики 9-3
Процедуры форма-уровень 15-3
Страницы, характеристики 10-4
Триггеры, характеристики 14-4
Документация полей
--------
В документации по полям представлены характеристики для каждого поля в
текущем контексте формы.
Формат: В документации поля сгруппированы по блокам, к которым они принадлежат.
Документация по полям начинается с секции форм, в которой представлены имя
специфицированной формы и имя пользователя, создавшего форму (т.е. владельца).
Оставшаяся документация содержит секции блоков для каждого блока формы.
В каждой секции блоков представлена следующая информация:
- имя блока
- секции полей для каждого поля в блоке
В каждой секции полей представлены характеристики полей.
В документации по полям представлены каждый блок и поле, в порядке,
определенном характеристикой блока Sequence Number и характеристикой поля
Sequence Number.
Аналоги: Поля, характеристики 12-4
Документация по объектам ссылок
--------
В документации по объектам ссылок представлены наименования справочной
информации для определенного объекта в текущем контексте формы.
Формат: Документация по объектам ссылок начинается с секций объекта,
представляющих имя и характеристики определенного объекта.
Оставшаяся документация состоит из секций форм для каждой формы, имеющей
ссылку на объект. В каждой секции форм представлена следующая информация: -
имя каждой формы - имя пользователя, создавшего форму (т.е. владельца) -
где и каким образом сделана ссылка на объект
Каждая форма в справочной документации прдставлена в алфавитном порядке.
Документация по страницам
--------
В документации по cтраницам представлены характеристики для каждой страницы в
текущем контексте формы.
Формат: Документация по страницам начинается с секций формы, представляющих
имя определенной формы и имя пользователя, создавшего форму (т.е. владельца)
Оставшаяся документация состоит из секций страниц для каждой страницы в
форме. В каждой секции страницы представлены все характеристики.
Все страницы в документации по страницам даны в порядке, определенном
характеристикой страниц Page Number.
Аналоги: Cтраницы, характеристики 10-4
-- 267 --
Документация по процедурам
--------
В документации по процедурам представлены характеристики для каждой
процедуры форма-уровень в текущем контексте формы.
Формат: Документация по процедурам начинается с секций формы, представляющих
имя определенной формы и имя пользователя, создавшего форму (т.е.
владельца)
Оставшаяся документация состоит из секций, в которых представлены
характеристики всех процедур, относмящихся к форме.
Краткая документация
--------
В краткой документации представлено сжатое описание объектов,
находящихся в текущем контексте формы. Документация состоит из
следующих объектов SQL*Forms:
- форма
- все блоки формы
- все поля формы
- все триггеры формы
- все процедуры форма-уровень формы
- все страницы формы
Формат: Краткая документация начинается с секций формы, представляющих
следующую информацию:
- характеристики специфицированных форм и имя пользователя,
создавшего форму (т.е. владельца) и любой текст, связанный с
характеристикой формы Comment
- имя каждого триггера, подключенного к форме и любой текст, связанный с
характеристикой триггера Comment
Далее в краткой документации идет секция блоков для каждого блока в
форме. В каждой такой секции представлена следующая информация:
- имя блока, имя таблицы на которой этот блок основан и любой текст,
касающийся характеристики блока Comment.
- имена любых триггеров, подключенных к блоку и любой текст, связанный с
характеристикой триггера Comment
- cекции поля для каждого поля блоке
В каждой секции имеется следующая информация:
- имя поля, в котором имеется (или не имеется) включенная характеристика
Base Table и любой текст, касающийся характеристики поля Comment.
- имена любых триггеров, подключенных к полю и любой текст, связанный с
характеристикой триггера Comment
Оставшаяся документация состоит из секций информации о страницах.
В краткой документации представлены каждый блок и поле, в порядке,
определенном характеристикой блока Sequence Number и характеристикой поля
Sequence Number.
-- 268 --
Документация по триггерам
--------
В документации по триггерам дается полная информация обо всех триггерах в
текущем контексте формы.
Формат: В документации триггеры сгруппированы по объектам к которым
они принадлежат.
Документация по триггерам начинается с секции форм, в которой
представлена следующая информация:
- имя специфицированной формы и имя пользователя, создавшего форму
(т.е. владельца)
- секция триггера, где представлены характеристики для всех
триггеров, подключенных к форме
Оставшаяся документация состоит из секций блоков для каждого блока в
форме. В каждой секции представлена следующая информация:
- имя блока
- секция триггеров, в которой представлены характеристики для
всех триггеров, подключенных к блоку
- секции полей для каждого поля в блоке
В каждой секции поля имеется следующая информация:
- имя поля
- секция триггеров, в которой представлены характеристики для
всех триггеров, подключенных к полю
Аналоги: Триггеры, характеристики 14-4
Глава 28
С Р Е Д С Т В А О Т Л А Д К И
Средства отладки позволяют вам выполнять прикладные программы во время
выполнения базового процесса. Вы можете использовать эти средства для
выявления ошибок процессирования.
Использование средств отладки особенно желательно при выполнении опции
Debug Mode и пакетной процедуры BREAK.
- Если прикладная программа выполняется в режиме отладки без
использования пакетной процедуры BREAK, то по мере продолжения
процессирования в строке сообщений отображаются стандартные сообщения.
- Если прикладная программа выполняется в режиме отладки с
использованием пакетной процедуры BREAK, вставленной в ваши триггеры, то
SQL*Forms выполняет прикладные программы с прерыванием.
Замечание: Функциональный код BREAK V2 выполняет те же действия в триггерах
V2, которые пакетная процедура BREAK выполняет в триггерах V3.
В этой главе представлены следующие темы:
- отладочные сообщения
- процесс прерывания
Аналоги: Пакетная процедура BREAK 16-6
Выполнение опции Debug Mode 26-2
-- 269 --
Отладочные сообщения
--------
Когда вы выполняете прикладные программы в режиме отладки, SQL*Forms
отображает отладочные сообщения в момент работы триггера. В этих сообщениях
отображается имя триггера, и объект, связанный с триггером. Если относится к
типу V2, то в сообщении также указывается порядковый номер шага триггера.
Ниже дан образец отладочного сообщения для триггера типа V3.
Executing POST-FIELD trigger on field SHIPDATE.
Процесс прерывания
--------
Процесс прерывания позволяет вам получать подробную информацию о
выполняемых вами прикладных программах. SQL*Forms выполняет прерывание во
время работы прикладных программ в режиме отладки, когда один или
большее количество триггеров прикладной программы содержат пакетную
процедуру BREAK.
Когда SQL*Forms cталкивается с пакетной процедурой BREAK в режиме отладки, она
приостанавливает обычную работу и отображает меню Debug Mode Option. В
этом меню представлены следующие опции:
- Сontinue with Debug Messages
- Сontinue without Debug Messages
- Display Global Variables
- Display System Variables
- Display Page O Fields
-Exit SQL*Forms (Run Form)
Когда появляется меню, вы можете выбрать одну из опций, чтобы получить
более подробную информацию о процессе или вести дальше работу режима
отладки. Во время паузы в прикладной программе вы можете отображать
столько категорий информации, сколько захотите. Прикладная программа
будет находиться в состоянии останова до тех пор, пока вы не потребуете
продолжения или не прекратите режим отладки.
Аналоги: пакетная процедура BREAK 16-6
Continue Отладочная опция Continue with Debug Messages прекращает
with Debug останов и продолжает выполнение прикладной программы
Messages в режиме отладки. Во время процессирования SQL*Forms
отображает любые сообщения об отладке.
Continue Отладочная опция Continue without Debug Messages
without прекращает останов и продолжает выполнение прикладной
Debug программы в режиме отладки. Во время процессирования
Messages SQL*Forms не отображает никаких сообщений об отладке.
Display Отладочная опция Display Global Variables отображает два
Global столбца электронной таблицы, в которых имеется информация
Variables об имени и текущей величине каждой глобальной переменной
текущей формы.
Display Отладочная опция Display System Variables отображает два
System столбца электронной таблицы, в которых имеется информация
Variables об имени и текущей величине каждой системной переменной
текущей формы.
-- 270 --
Display Отладочная опция Display Page 0 Fields отображает два
Page столбца электронной таблицы, в которых имеется информация
0 Fields об имени и текущей величине каждого поля, расположенного
на нулевой странице текущей формы.
Exit Отладочная опция Exit SQL*Forms (Текущая форма)
SQL*Forms прекращает сеанс SQL*Forms (Текущая форма):
- Если вы выполняете форму из SQL*Forms (Проектирование),
SQL*Forms возвращается к главному меню SQL*Forms (Текущая
форма).
- Если вы выполняете форму из командной строки,
SQL*Forms возвращается в командную строку.
Глава 29
С Р Е Д С Т В А Р Е Д А К Т И Р О В А Н И Я
Средства редактирования "нажатие клавиш" (Keystroke) позволяют вам
захватывать "нажатие клавиш" оператора или дизайнера во время работы
SQL*Forms и модифицировать их запись. (Вы можете проводить эти операции
как в SQL*Forms (Проектирование) так и в SQL*Forms (Текущая форма)). Однако,
для тестирования форм в версиях програмного обеспечения и аппаратных
средств преимущественно используются SQL*Forms (Текущая форма).
В данной главе рассматриваются следующие темы:
- использование средств "нажатия клавиш"
- ключевой файл сценария
Применение редактирования
--------
Применение средств редактирования бывает полезным при использовании
различных переключателей командной строки SQL*Forms и текстового редактора.
Процесс состоит из комбинации следующих задач.
Замечание: Эти задачи подразумевают, что вы используете средства с SQL*Forms
(Текущая форма).
- Захват операторского "нажатия клавиш" и ключевого файла сценария.
Используйте -e переключатель для SQL*Forms (Текущая форма). Во время
сеанса этот переключатель заставляет SQL*Forms записывать
операторское "нажатие клавиш" в обозначенный ключевой файл сценария.
- Редактирование ключевого файла сценария для изменения его
будущих действий.
Используйте ваш текстовый редактор файла для редактирования ключевого
файла сценария. Это действие изменит поведение прикладной программы,
когда вы используете ключевой файл сценария, как вводный.
- Использование ключевого файла сценария, как вводного.
Используйте -r переключатель для SQL*Forms (Текущая форма). Этот
переключатель заставляет SQL*Forms все действия, предусмотренные в
ключевом файле сценария. Вы можете использовать -w переключатель
вместе с -r переключателем для направления результатов во
входной файл дисплея (не на экран терминала).
Замечание: Чтобы форма выполнялась, ключевой файл сценария должен
содержать выходной символ ().
-- 271 --
- Записать терминальные выходные данные в регистрационный файл дисплея.
Чтобы зарегистрировать выходные данные в диалоговом сеансе, выполняйте
SQL*Forms с -i переключателем. Чтобы зарегистрировать выходные данные
сеанса ключевого сценария, выполняйте SQL*Forms c -r и -w переключателями.
Применяя -e переключатель, вы можете выполнять формы с этими файлами
сценария, используя -r и -i переключатели. Затем вы можете выполнять
специальные программы оперативной системы, сравнивающие отображенные
регистрационные файлы, чтобы узнать, не изменилось ли поведение формы в
течении версий програмных или аппаратных средств.
Аналоги: -e переключатель, SQL*Forms (Проектирование)
-e переключатель, SQL*Forms (Текущая форма)
-i переключатель, SQL*Forms (Проектирование)
-i переключатель, SQL*Forms (Текущая форма)
-r переключатель, SQL*Forms (Проектирование)
-r переключатель, SQL*Forms (Текущая форма)
-r переключатель, SQL*Forms (Проектирование)
-r переключатель, SQL*Forms (Текущая форма)
Ключевой файл сценария
Ключевой файл сценария - это запись "нажатия клавиш" оператора или
дизайнера во время сеанса SQL*Forms. SQL*Forms создает ключевой файл
сценария, когда вы выполняете SQL*Forms (Проектирование) или SQL*Forms
(Текущая форма) с -e переключателем командной строки.
Ниже даны примеры содержимого ключевых файлов сценария. (Номера строк могут
и не появляться в ваших файлах; здесь они даны для справки.)
1 ; Generated by SQL*Forms Version 3.0 on Jun 6
10:23:13 1989
2 ;
3 s c o t t
4 t i g e r
5
6 1 0 0
7
8
В каждой из строк 1 и 2 знак точка с запятой указывает на строку комментариев.
Комментарий в строке 1 - это заголовок, сгенерированный SQL*Forms.
Функциональные ключевые имена, помещенные в скобках (<>), показывают, где
оператор нажал функциональную клавишу. Выделенные имена соответствуют
именам функциональных ключей SQL*Forms (Проектирование) и SQL*Forms
(Текущая форма).
В следующей таблице показано, как SQL*Forms отображает специальные символы с
контролем типов в ключевом файле сценария:
Cимвол Отображение
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
; \;
\
[or] \[or\]
\ \ \
blank character \b
-- 272 --
Замечание: Если вы используете редактирование, то ваш ключевой файл
сценария станет несколько измененным. Информация о событии появляется в
квадратных скобках. Например:
[x 3 23 1 ]
Редактиро- Вы можете использовать ключевой файл сценария как вводный
вание во время сеанса SQL*Forms (Проектирование) или SQL*Forms
ключевого (Текущая форма). Вы можете редактировать файл, чтобы
файла изменить действия, вызываемые им. Например:
сценария изменить
1 1 5
на
2 0 0
|