Встроенное объявление реакции на исключительную ситуацию> (<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>)".
Знаете ли Вы, что такое мысленный эксперимент, gedanken experiment? Это несуществующая практика, потусторонний опыт, воображение того, чего нет на самом деле. Мысленные эксперименты подобны снам наяву. Они рождают чудовищ. В отличие от физического эксперимента, который является опытной проверкой гипотез, "мысленный эксперимент" фокуснически подменяет экспериментальную проверку желаемыми, не проверенными на практике выводами, манипулируя логикообразными построениями, реально нарушающими саму логику путем использования недоказанных посылок в качестве доказанных, то есть путем подмены. Таким образом, основной задачей заявителей "мысленных экспериментов" является обман слушателя или читателя путем замены настоящего физического эксперимента его "куклой" - фиктивными рассуждениями под честное слово без самой физической проверки. Заполнение физики воображаемыми, "мысленными экспериментами" привело к возникновению абсурдной сюрреалистической, спутанно-запутанной картины мира. Настоящий исследователь должен отличать такие "фантики" от настоящих ценностей.
Релятивисты и позитивисты утверждают, что "мысленный эксперимент" весьма полезный интрумент для проверки теорий (также возникающих в нашем уме) на непротиворечивость. В этом они обманывают людей, так как любая проверка может осуществляться только независимым от объекта проверки источником. Сам заявитель гипотезы не может быть проверкой своего же заявления, так как причина самого этого заявления есть отсутствие видимых для заявителя противоречий в заявлении.
Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта").
Максимально, на что может претендовать "мысленный эксперимент" - это только на внутреннюю непротиворечивость гипотезы в рамках собственной, часто отнюдь не истинной логики заявителя. Соответсвие практике это не проверяет. Настоящая проверка может состояться только в действительном физическом эксперименте.
Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем.
Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.