Встроенное объявление реакции на исключительную ситуацию> (<embedded
exception declaration>)
(Это дополнение не является
неотъемлемой частью стандарта.)
Функция
Специфицирует действия,
предпринимаемые в случае
возникновения исключительных
ситуаций при выполнении
<оператора SQL> (<SQL statement>).
Формат
<embedded exception declaration> ::=
WHENEVER <condition> <exception action>
<condition> ::=
SQLERROR | NOT FOUND
<exception action> ::=
CONTINUE | <go to>
<go to> ::=
{ GOTO | GO TO } <target>
<target> ::= :<host identifier> | <unsigned integer>
Синтаксические правила
а) Если <встроенное
объявление реакции на
исключительную ситуацию>
(<embedded exception declaration>)
содержится в <программе на
языке COBOL со встроенным SQL>
(<embedded SQL COBOL program>), то
<цель> (<target>) в
<операторе передачи
управления> (<go to>) должна
специфицировать
<идентификатор основного
языка> (<host identifier>),
являющийся именем секции или
именем параграфа без
квалификатора.
b) Если <встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>) содержится в
<программе на языке FORTRAN со
встроенным SQL> (<embedded SQL FORTRAN
program>), то <цель> (<target>) в
<операторе передачи
управления> (<go to>) должна
быть <целым числом без
знака> (<unsigned integer>), которое
является меткой выполнимого
оператора, появляющегося в той
же программной единице, что и
<оператор передачи
управления> (<go to>).
c) Если <встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>)содержится в
<программе на языке Pascal со
встроенным SQL> (<embedded SQL Pascal
program>), то <цель> (<target>) в
<операторе передачи
управления> (<go to>) должна
быть <целым числом без
знака> (<unsigned integer>),
являющимся меткой.
d) Если <встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>) содержится в
<программе на языке PL/1 со
встроенным SQL> (<embedded SQL PL/1
program>), то <цель> (<target>) в
<операторе передачи
управления> (<goto>) должна
специфицировать
<идентификатор основного
языка> (<host identifier>),
являющийся меткой константой
или именем переменной типа
метка.
<Встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>), содержащееся в
<программе со встроенным SQL>
(<embedded SQL host program>)
применяется к <оператору SQL>
(<SQL statement>), содержащемуся в
<программе со встроенным SQL>
(<embedded SQL host program>), тогда и
только тогда, когда <оператор
SQL> (<SQL statement>) появляется
текстуально после этого
<встроеннного объявления
реакции на исключительную
ситуацию> (<embedded exception
declaration>) в тексте <программы
со встроенным SQL> (<embedded SQL host
program>) и нет другого
<встроенного объявления
реакции на исключительную
ситуацию> (<embedded exception
declaration>), которое
специфицирует то же
<условие> (<condition>) и
появляется между этим
<встроеннным объявлением
реакции на исключительную
ситуацию> (<embedded exception
declaration>) и этим <оператором
SQL> (<SQL statement>) в тексте
<программы со встроенным SQL>
(<embedded SQL host program>).
Если <встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>) специфицирует
<оператор передачи
управления> (<go to>), то
<идентификатор основного
языка> (<host identifier>) или
<целое число без знака>
(<unsigned integer>), используемые в
<операторе передачи
управления> (<go to>), должны
быть такими, чтобы оператор GOTO
основного языка,
специфицирующий этот
<идентификатор основного
языка> (<host identifier>) или
<целое число без знака>
(<unsigned integer>), был законным
для каждого <оператора SQL>
(<SQL statement>), к которому
применимо данное <встроенное
объявление реакции на
исключительную ситуацию>
(<embedded exception declaration>).
Общие правила
Непосредственно после
выполнения <оператора SQL>
(<SQL statement>) в <программе со
встроенным SQL> (<embedded SQL host
program>):
а) Если значение переменной
SQLCODE (SQLCOD) равно +100 и
<программа со встроенным SQL>
(<embedded SQL host program>) содержит
<встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>), которое применимо к
<оператору SQL> (<SQL statement>),
<условие> (<condition>)
которого есть NOT FOUND и
<действие по исключительной
ситуации> (<exception action>)
которого есть <оператор
передачи управления> (<go
to>), то выполняется оператор
GOTO основного языка с указанным
в данном <операторе передачи
управления> (<go to>)
<идентификатором основного
языка> (<host identifier>) или
<целым числом без знака>
(<unsigned integer>).
b) Если значение переменной SQLCODE
(SQLCOD> отрицательное число и
<программа со встроенным SQL>
(<embedded SQL host program>) содержит
<встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>), которое применимо к
<оператору SQL> (<SQL statement>),
<условие> (<condition>)
которого SQLERROR и <действие по
исключительной ситуации>
(<exception action>) которого есть
<оператор передачи
управления> (<go to>), то
выполняется оператор GOTO
основного языка с указанным в
данном <операторе передачи
управления> (<go to>)
<идентификатором основного
языка> (<host identifier>) или
<целым числом без знака>
(<unsigned integer>).
c) Если <программа со
встроенным SQL> (<embedded SQL host
program>) не содержит
<встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>), которое применимо к
<оператору SQL> (<SQL statement>),
или если она содержит
<встроенное объявление
реакции на исключительную
ситуацию> (<embedded exception
declaration>), которое применимо к
<оператору SQL> (<SQL statement>) и
<условие> (<condition>)
которого CONTINUE, то никакие
действия для этого <оператора
SQL> (<SQL statement>) не
выполняются.
Приложение С. <Программа на
языке Кобол со встроенным SQL>
(<embedded SQL COBOL program>
(Это дополнение не является
неотъемлемой частью стандарта.)
Функция
Специфицирует модуль SQL,
встроенный в программу на языке COBOL.
Формат
<embedded SQL COBOL program> ::=
См. Синтаксические правила.
<COBOL variable definition> ::=
{ 01 | 77 } < COBOL host identifier>
<COBOL type specification>
[<character> ...]
< COBOL host identifier> ::=
См. Cинтаксическое правило 3.
<COBOL type specification> ::=
<COBOL character type>
| <COBOL numeric type>
| <COBOL integer type>
<COBOL character type> ::=
PIC[TURE] [IS] X (<length>)
<COBOL numeric type> ::=
PIC[TURE] [IS]
S{ <nines> [V<nines>]
| <nines>V
| V<nines> }
[USAGE [IS]] DISPLAY SIGN LEADING SEPARATE
<COBOL integer type> ::=
PIC[TURE] [IS]
S<nines>
[USAGE [IS]] COMP[UTATIONAL]
<nines>::= { 9 [(<unsigned integer>)] }...
Синтаксические правила
<Программа на языке COBOL со
встроенным SQL> (<embedded SQL COBOL
program>) - это прикладная
программа, состоящая из текста
на языке COBOL и текста на языке
SQL. Текст на языке COBOL должен
удовлетворять стандарту языка
COBOL. Текст на языке SQL должен
состоять из одного или более
<встроенных операторов языка
SQL> (<embedded SQL statement>) и,
возможно, одной или более
<встроенных секций описаний
SQL> (<embedded SQL declare section>.
<Встроенный оператор SQL>
(<embedded SQL statement>) в
<программе на языке COBOL со
встроенным SQL> (<embedded SQL COBOL
program>) может быть
специфицирован везде, где
может быть специфицирован
оператор языка COBOL в разделе
процедур (Procedure Division)
<программы на языке COBOL со
встроенным SQL> (<embedded SQL COBOL
program>). Если оператору языка
COBOL может непосредственно
предшествовать имя параграфа,
то и <встроенному оператору
языка SQL> (<embedded SQL statement>)
может непосредственно
предшествовать имя параграфа.
<Идентификатор языка COBOL>
(<COBOL host identifier>) - это любое
допустимое в языке COBOL имя
переменной. <Идентификатор
языка COBOL> (<COBOL host identifier>)
должен содержаться в
<программе на языке COBOL со
встроенным SQL> (<embedded SQL COBOL
program>).
<Определение переменной
языка COBOL> (<COBOL variable definition>)
- это ограниченная форма
описания данных в языке COBOL,
определяющая переменную.
а) <Определение переменной
языка COBOL> (<COBOL variable definition>)
должно быть законным элементом
описания данных в разделе
данных (Data Division) программы,
полученной из <программы на
языке COBOL со встроенным SQL>
(<embedded SQL COBOL program>).
b) Необязательная
последовательность
<символов> (<character>) в
<определении переменной
языка COBOL> (<COBOL variable definition>)
может специфицировать раздел
VALUE. Могут ли быть
специфицированы другие
разделы - определяется
реализацией.
Последовательность
<символов> (<character>) должна
быть такой, чтобы
<определение переменной
языка COBOL> (<COBOL variable definition>)
являлось допустимым элементом
описания данных языка COBOL.
c) <Cимвольный тип данных языка
COBOL> (<COBOL character type>)
описывает переменную типа
строка символов. Эквивалентный
тип данных языка SQL - это тип
CHARACTER такой же длины.
d) <Числовой тип данных языка
COBOL> (<COBOL numeric type>) описывает
переменную типа точных чисел.
Эквивалентный тип данных языка
SQL - это тип NUMERIC с теми же самыми
значениями точности и
масштаба.
e) <Целый тип данных языка
COBOL> (<COBOL integer type>) описывает
переменную типа точных чисел.
Эквивалентный тип данных языка
SQL - это тип INTEGER. Замечание: этот тип данных
поддерживается только для SQLCODE,
см. Синтаксическое правило 5.
<Программа на языке COBOL со
встроенным SQL> (<embedded SQL COBOL
program>) должна содержать
переменную с именем SQLCODE,
определенную с типом данных
COMPUTATIONAL picture S9(PC), где PC -
определяемое реализацией
значение точности,
специфицированное для
параметров SQLCODE в разделе 7.3,
"<Процедура> (<procedure>).
Общие правила
См. Приложение A
"<Программа со встроенным SQL>
(<embedded SQL host program>)".
Приложение D. <Программа на
языке Фортран со встроенным SQL>
(<embedded SQL FORTRAN program>)
(Это дополнение не является
неотъемлемой частью стандарта.)
Функция
Специфицирует модуль SQL,
встроенный в программу на языке
FORTRAN.
Формат
<embedded SQL FORTRAN program> ::=
См. Синтаксические правила.
<FORTRAN variable definition> ::=
<FORTRAN type specification>
<FORTRAN host identifier>
[{,<FORTRAN host identifier>}...]
<FORTRAN host identifier> ::=
См. Синтаксическое правило 4.
<FORTRAN type specification> ::=
CHARACTER [*<length>]
| INTEGER
| REAL
| DOUBLE PRECISION
Синтаксические правила
<Программа на языке FORTRAN со
встроенным SQL> (<embedded SQL FORTRAN
program>) - это прикладная
программа, состоящая из текста
на языке FORTRAN и текста на языке
SQL. Текст на языке FORTRAN должен
удовлетворять стандарту языка
FORTRAN. Текст на языке SQL должен
состоять из одного или более
<встроенных операторов SQL>
(<embedded SQL statement>) и, возможно,
одной или более <встроенных
секций описаний SQL> (<embedded SQL
declare section>).
<Встроенный оператор SQL>
(<embedded SQL statement>) может быть
специфицирован везде, где
может быть специфицирован
оператор языка Фортран.
<Встроенный оператор SQL>
(<embedded SQL statement>),
предшествующий какому-либо
выполнимому оператору языка
FORTRAN в содержащей <программе
на языке FORTRAN со встроенным SQL>
(<embedded SQL FORTRAN program>) не должен
быть помечен номером оператора
языка FORTRAN. В других случаях,
если оператор языка FORTRAN может
иметь номер, то и <встроенный
оператор SQL> (<embedded SQL statement>)
может иметь номер.
Пробелы существенны во
<встроенных операторах SQL>
(<embedded SQL statement>). Правила для
<разделителей> (<separator>) во
<встроенных операторах языка
SQL> (<embedded SQL statement>)
специфицируются в разделе 5.3,
"<Лексемы> (<token>)".
<Идентификатор языка FORTRAN>
(<FORTRAN host identifier>) - это любое
допустимое имя переменной в
языке FORTRAN. <Идентификатор
языка FORTRAN> (<FORTRAN host identifier>)
должен содержаться в
<программе на языке FORTRAN со
встроенным SQL> (<embedded SQL FORTRAN
program>).
<Определение переменной
языка FORTRAN> (<FORTRAN variable
definition>) является ограниченной
формой оператора описания типа
языка FORTRAN, которая определяет
переменную основного языка.
а) <Определение переменной
языка FORTRAN> (<FORTRAN variable
definition>) должно быть
допустимым оператором
описанием типа языка FORTRAN в
программе, полученной из
<программы на языке FORTRAN со
встроенным SQL> (<embedded SQL FORTRAN
program>).
b) CHARACTER описывает переменную
типа символьной строки.
Эквивалентный тип данных языка
SQL - это тип CHARACTER такой же длины.
c) INTEGER описывает переменную
типа точного числа.
Эквивалентный тип данных языка
SQL - это тип INTEGER.
d) REAL описывает переменную типа
приблизительного числа.
Эквивалентный тип данных языка
SQL - это тип REAL.
e) DOUBLE PRECISION описывает
переменную типа
приблизительного числа.
Эквивалентный тип данных языка
SQL - это тип DOUBLE PRECISION.
<Программа на языке FORTRAN со
встроенным SQL> (<embedded SQL FORTRAN
program>) должна содержать
переменную с именем SQLCODE,
определенную с типом данных
INTEGER. В <программе на языке
FORTRAN со встроенным SQL> (<embedded
SQL FORTRAN program>) имя SQLCOD должно
использоваться как сокращение
SQLCODE.
Общие правила
См. Приложение A
"<Программа со встроенным SQL>
(<embedded SQL host program>)".
Приложение Е. <Программа на
языке Паскаль со встроенным SQL>
(<embedded SQL Pascal program>)
(Это дополнение не является
неотъемлемой частью стандарта)
Функция
Специфицирует модуль SQL,
встроенный в программу на языке
FORTRAN.
Формат
<embedded SQL Pascal program> ::=
См. Синтаксические правила.
<Pascal variable definition> ::=
<Pascal host identifier>
[{,<Pascal host identifier>}...]:
<Pascal type specification>
< Pascal host identifier> ::=
См. Синтаксическое правило 3.
<Pascal type specification> ::=
PACKED ARRAY <left bracket>
1..<length> <right bracket> OF CHAR
| INTEGER
| REAL
<left bracket> ::=[
<right bracket> ::=]
Синтаксические правила
<Программа на языке Pascal со
встроенным SQL> (<embedded SQL Pascal
program>) - это прикладная
программа, состоящая из текста
на языке Pascal и текста на языке
SQL. Текст на языке Pascal должен
удовлетворять стандарту языка
Pascal. Текст на языке SQL должен
состоять из одного или более
<встроенных операторов SQL>
(<embedded SQL statement>) и, возможно,
одной или более <встроенных
секций описаний SQL> (<embedded SQL
declare section>.
<Встроенный оператор SQL>
(<embedded SQL statement>) может быть
специфицирован везде, где
может быть специфицирован
оператор языка Pascal.
<Встроенному оператору SQL>
(<embedded SQL statement>) может
предшествовать метка языка
Pascal.
<Идентификатор языка Pascal>
(<Pascal host identifier>) - это любой
допустимый идентификатор
переменной в языке Pascal.
<Идентификатор языка Pascal>
(<Pascal host identifier>) должен
содержаться в <программе на
языке Pascal со встроенным SQL>
(<embedded SQL Pascal program>).
<Определение переменной
языка Pascal> (<Pascal variable
definition>) определяет переменную
основного языка.
а) <Определение переменной
языка Pascal> (<Pascal variable
definition>) должно быть
допустимым в языке Pascal
объявлением переменной в
программе, полученной из
<программы на языке Pascal со
встроенным SQL> (<embedded SQL Pascal
program>).
b) PACKED ARRAY [1..<lenght>] OF CHAR
описывает переменную типа
символьной строки.
Эквивалентный тип данных языка
SQL - это тип CHARACTER такой же длины.
c) INTEGER описывает переменную
типа точного числа.
Эквивалентный тип данных языка
SQL - это тип INTEGER.
d) REAL описывает переменную типа
приблизительного числа.
Эквивалентный тип данных языка
SQL - это тип REAL.
<Программа на языке Pascal со
встроенным SQL> (<embedded SQL Pascal
program>) должна содержать
переменную с именем SQLCODE,
определенную с типом данных
INTEGER.
Общие правила
См. Приложение A
"<Программа со встроенным SQL>
(<embedded SQL host program>)".
Приложение F. <Программа на
языке PL/1 со встроенным SQL> (<embedded
SQL PL/1 program>)
(Это дополнение не является
неотъемлемой частью стандарта.)
Функция
Специфицирует модуль SQL,
встроенный в программу на языке PL/1.
<Программа на языке PL/1 со
встроенным SQL> (<embedded SQL PL/1
program>) - это прикладная
программа, состоящая из текста
на языке PL/1 и текста на языке SQL.
Текст на языке PL/1 должен
удовлетворять стандарту языка
PL/1. Текст на языке SQL должен
состоять из одного или более
<встроенных операторов SQL>
(<embedded SQL statement>) и, возможно,
одной или более <встроенных
секций описаний SQL> (<embedded SQL
declare section>.
<Встроенный оператор SQL>
(<embedded SQL statement>) может быть
специфицирован везде, где
может быть специфицирован
оператор языка PL/1 внутри блока
процедур. Если оператору PL/1
могла бы предшествовать метка,
<встроенному оператору SQL>
(<embedded SQL statement>) может
непосредственно
предшествовать метка.
<Идентификатор языка PL/1>
(<PL/1 host identifier>) это любой
допустимый идентификатор
переменной в языке PL/1.
<Идентификатор языка PL/1>
(<PL/1 host identifier>) должен
содержаться в <программе на
языке PL/1 со встроенным SQL>
(<embedded SQL PL/1 program>).
<Определение переменной
языка PL/1> (<PL/1 variable definition>)
определяет одну или более
переменных основного языка.
а) <Определение переменной
языка PL/1> (<PL/1 variable definition>)
должно быть допустимым в языке
PL/1 объявлением данных в
программе, полученной из
<программы на языке PL/1 со
встроенным SQL> (<embedded SQL PL/1
program>).
b) <Определение переменной
языка PL/1> (<PL/1 variable definition>)
должно специфицировать
скалярную переменную, а не
массив или структуру.
c) Необязательная
последовательность
<символов> (<character>) в
<определении переменной
языка PL/1> (<PL/1 variable definition>)
может специфицировать раздел
INITIAL. Могут ли быть
специфицированы другие
предложения - определяется
реализацией.
Последовательность
<символов> (<character>) должна
быть такой, чтобы
<определение переменной
языка PL/1> (<PL/1 variable definition>)
было законным оператором DECLARE
языка ПЛ/1.
d) CHAR[ACTER] описывает переменную
типа символьной строки.
Эквивалентный тип данных языка
SQL - это тип CHARACTER такой же длины.
e) FIXED DEC[IMAL] описывает
переменную типа точного числа.
<Масштаб> (<scale>) не должен
быть больше <точности>
(<precision>). Эквивалентный тип
данных языка SQL - это тип DECIMAL с
такими же <точностью>
(<precision>) и <шкалой>
(<scale>).
f) FLOAT BIN[ARY] описывает переменную
типа приблизительного числа.
Эквивалентный тип данных языка
SQL - это тип FLOAT с такой же
<точностью> (<precision>).
g) FIXED BIN[ARY] описывает переменную
типа точного числа.
Эквивалентный тип данных языка
SQL - это тип INTEGER. Замечание: Этот тип данных
поддерживается только для SQLCODE;
см. Синтаксическое правило 5.
<Программа на языке PL/1 со
встроенным SQL> (<embedded SQL PL/1
program>) должна содержать
переменную с именем SQLCODE,
определенную с типом данных FIXED
BINARY(PP), где PP - определенная в
реализации <точность>
(<precision>), специфицированное
для параметров SQLCODE в разделе 7.3,
"<Процедура>
(<procedure>)".
Общие правила
См. Приложение A
"<Программа со встроенным SQL>
(<embedded SQL host program>)".
Знаете ли Вы, что "тёмная материя" - такая же фикция, как черная кошка в темной комнате. Это не физическая реальность, но фокус, подмена. Реально идет речь о том, что релятивистские формулы не соответствуют астрономическим наблюдениям, давая на порядок и более меньшую массу и меньшую энергию. Отсюда сделан фокуснический вывод, что есть "темная материя" и "темная энергия", но не вывод, что релятивистские формулы не соответствуют реалиям. Подробнее читайте в FAQ по эфирной физике.