Язык модулей SQL
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: доклади, конспект урока изложения
| Добавил(а) на сайт: Zakrjatin.
1 2 3 4 | Следующая страница реферата
Язык
модулей SQL
7.1 <Модуль> (<module>)
a) Если <раздел языка> (<language clause>) специфицирует COBOL, то:
i) Типом параметра SQLCODE должен быть COMPUTATIONAL S9(PC), где PC - определяемая реализацией точность, большая или равная 4.
ii) Любой <тип данных> (<data type>) в <объявлении параметров> (<parameter declaration>) должен быть CHARACTER или NUMERIC.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) CHARACTER(L) c некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть буквенно-цифровым типом языка COBOL длины L.
iv) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) NUMERIC(P,S) c некоторыми <точностью> (<precision>) P и <масштабом> (<scale>) S, то типом i-ого параметра должен быть тип языка COBOL usage DISPLAY SIGN LEADING SEPARATE со следующим PICTURE: Если S=P, то PICTURE: "S", за которым следует "V", и затем P экземпляров "9". Если P > S > 0, то PICTURE: "S", за которым следуют P-S экземпляров "9", затем "V" и затем S экземпляров "9". Если S=O, то PICTURE: "S", за которым следуют P экземпляров "9" и затем необязательное "V".
i) Тип параметра SQLCODE должен быть типом INTEGER языка FORTRAN.
ii) Любой <тип данных> (<data type>) в <объявлении параметра> должен быть CHARACTER, INTEGER, REAL или DOUBLE PRECISION.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) CHARACTER(L) с некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть типом CHARACTER языка FORTRAN с длиной L.
vi) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) данных INTEGER, REAL или DOUBLE PRECISION, то тип i-ого параметра должен быть соответственно INTEGER, REAL или DOUBLE PRECISION языка FORTRAN.
i) Тип параметра SQLCODE должен быть типом INTEGER языка Pascal.
ii) Любой <тип данных> (<data type>) в <объявлении параметра> (<parameter declaration>) должен быть CHARACTER, INTEGER, или REAL.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) CHARACTER(L) с некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть типом строки языка Pascal длины L.
iv) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) INTEGER или REAL, то тип i-ого параметра должен быть соответственно типом INTEGER, или REAL языка Pascal.
i) Тип параметра SQLCODE должен быть FIXED BINARY(PP), где РР определяемая реализацией точность, большая или равная 15.
ii) Любой <тип данных> (<data type>) в <объявлении параметра> (<parameter declaration>) должен быть CHARACTER, DECIMAL, или FLOAT.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует тип данных CHARACTER(L) с некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть типом CHARACTER языка PL/1 с длиной L.
vi) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует тип данных DECIMAL(P,S) с некоторыми <точностью> (<precision>) P и <масштабом> (<scale>) S, то тип i-ого параметра должен быть типом FIXED REAL DECIMAL(P,S) языка PL/1.
v) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует тип данных FLOAT(P) с некоторой <точностью> (<precision>) P, то тип i-ого параметра должнен быть типом FLOAT REAL BINARY (P) языка PL/1.
а) Если для этого агента нет активной транзакции, то транзакция фактически инициируется и связывается с этим вызовом и с последующими вызовами этим агентом любой <процедуры> (<procedure>) в содержащем <модуле> (<module>), до тех пор, пока данный агент не закончит эту транзакцию.
b) Выполняется <оператор SQL> (<SQL statement>) S данной <процедуры> (<procedure>).
а) Если S выполнен успешно, то
i) Если S - <оператор чтения> (<fetch statement>) , для которого следующая строка не существует, то в параметр SQLCODE устанавливается значение 100.
ii) Если S - <оператор вставки> (<insert statement>), для которого не нашлось ни одной возможной строки, то в параметр SQLCODE устанавливается значение 100.
iii) Если S - <оператор выборки> (<select statement>), результатом которого явилась пустая таблица, то в параметр SQLCODE устанавливается значение 100.
iv) Если S - <оператор модификации: поисковый> (<update statement: searched>) или <оператор удаления: поисковый>) (<delete statement: searched>) с поиском, для которых не нашлись объектные строки для модификации или удаления, то в параметр SQLCODE устанавливается значение 100.
v) Во всех остальных случаях в параметр SQLCODE устанавливается 0.
i) Все изменения, произведенные над базой данных при выполнении S, аннулируются.
ii) В параметр SQLCODE устанавливается отрицательное число со значением, определяемым реализацией Язык манипулирования данными (data manipulation language) 8.1 <Оператор закрытия> (<close statement>)
Рекомендуем скачать другие рефераты по теме: реферат загрязнение, купить диплом высшее.
1 2 3 4 | Следующая страница реферата
Функция
Определяет модуль.
Формат
<module> ::= <module name clause> <language clause> <module autorization clause> [<declare cursor>...] < procedure > ... <language clause> ::= LANGUAGE PASCAL <module autorization clause> ::= AUTHORIZATION <module autorization identifier> <module autorization identifier> ::= <autorization identifier>Синтаксические правила
Для каждого <определения курсора> (<cursor declare>) в <модуле> (<module>) должна существовать ровно одна <процедура> (<procedure>) в этом <модуле> (<module>), которая содержит <оператор открытия> (<open statement>) со спецификацией <имени курсора> (<cursor name>), объявленного в <объявлении курсора> (<cursor declare>). <Модуль> (<module>) должен быть ассоциирован с прикладной программой при ее выполнения. Прикладная программа должна быть ассоциирована не более чем с одним <модулем> (<module>).Общие правила
Если <раздел языка> (<language clause>) <модуля> (<module>) специфицирует COBOL (соответственно FORTRAN, PASCAL, PLI) и если агент, выполняющий вызов <процедуры> (<procedure>) этого <модуля> (<module>), не является стандартной программой на языке COBOL (соответственно FORTRAN, Pascal, PL/1), то результат неопределен. После выполнения агентом на языке программирования последнего вызова <процедуры> (<procedure>) в <модуле> (<module>) неявно выполняется <оператор фиксации> (<commit statement>) или <оператор отката> (<rollback statement>). Выбор одного из этих <операторов SQL> (<SQL statement>) определяется реализацией. Если имеет место невосстанавлваемая ошибка, то СУБД должна выполнить <оператор отката> (<rollback statement>). 7.2. <Раздел имени модуля> (<module name clause>)Функция
Задает имя <модуля> (<module>).
Формат
<module name clause> ::= MODULE [<module name>]Синтаксические правила
<Имя модуля> (<module name>) должно отличаться от <имени модуля> (<module name>) любого другого <модуля> (<module>) в том же окружении. Понятие окружения определяется в реализации.Общие правила
<Раздел имени модуля> (<module name clause>) определяет необязательный <идентификатор> (<identifier>) как <имя модуля> (<module name>), определяющее содержащий <модуль> (<module>) в данном окружении. 7.3. <Процедура> (<procedure>)Функция
Определяет процедуру и оператор языка SQL.
Формат
<procedure> ::= PROCEDURE <procedure name> <parameter declaration>...; <SQL statment>; <parameter declaration>::= <parameter name> <data type> | <SQLCODE parameter> <SQLCODE parameter> ::= SQLCODE <SQL statement> ::= <close statement> | <commit statement> | <delete statement positioned> | <delete statement searched> | <fetch statement> | <insert statement> | <open statement> | <rollback statement> | <select statement> | <update statement positioned> | <update statement searched>Синтаксические правила
<Имя процедуры> (<procedure name>) должно отличаться от <имени процедуры> (<procedure name>) любой другой <процедуры> (<procedure>) в содержащем модуле. <Имя параметра> <parameter name> в каждом <объявлении параметра> (<parameter declaration>) в <процедуре> (<procedure>) должно отличаться от <имени параметра> (<parameter name>) любого другого <объявления параметра> (<parameter declaration>) в этой процедуры. Любое <имя параметра> (<parameter name>), содержащееся в <операторе SQL> (<SQL statement>) <процедуры> (<procedure>), должно быть специфицировано в <объявлении параметра> (<parameter declaration>) этой процедуры. Если <имя столбца> (<column name>) в <операторе SQL> (<SQL statement>) совпадает с <именем параметра> (<parameter name>) в <объявлении параметра> (<parameter declaration>) <процедуры> (<procedure>), содержащей этот <оператор SQL> (<SQL statement>), то <спецификация столбца> (<column specification>), которая содержит это <имя столбца> (<column name>), должна содержать <квалификатор> (<qualifier>). Законный вызов <процедуры> (<procedure>) должен поставлять n параметров, где n - число <объявлений параметров> (<parameter declaration>) в данной <процедуре> (<procedure>). Процедура должна содержать ровно один <параметр SQLCODE> (<SQLCODE parameter>). На параметр, соответствующий параметру SQLCODE, ссыля4аются я0как я4на параметр SQLCODE. <Разделом языка> (<language clause>) процедуры явля<раздел языка> (<language clause>) содержащего <модуля> (<module>).a) Если <раздел языка> (<language clause>) специфицирует COBOL, то:
i) Типом параметра SQLCODE должен быть COMPUTATIONAL S9(PC), где PC - определяемая реализацией точность, большая или равная 4.
ii) Любой <тип данных> (<data type>) в <объявлении параметров> (<parameter declaration>) должен быть CHARACTER или NUMERIC.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) CHARACTER(L) c некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть буквенно-цифровым типом языка COBOL длины L.
iv) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) NUMERIC(P,S) c некоторыми <точностью> (<precision>) P и <масштабом> (<scale>) S, то типом i-ого параметра должен быть тип языка COBOL usage DISPLAY SIGN LEADING SEPARATE со следующим PICTURE: Если S=P, то PICTURE: "S", за которым следует "V", и затем P экземпляров "9". Если P > S > 0, то PICTURE: "S", за которым следуют P-S экземпляров "9", затем "V" и затем S экземпляров "9". Если S=O, то PICTURE: "S", за которым следуют P экземпляров "9" и затем необязательное "V".
b) Если <раздел языка> (<language clause>) специфицирует FORTRAN, то:
i) Тип параметра SQLCODE должен быть типом INTEGER языка FORTRAN.
ii) Любой <тип данных> (<data type>) в <объявлении параметра> должен быть CHARACTER, INTEGER, REAL или DOUBLE PRECISION.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) CHARACTER(L) с некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть типом CHARACTER языка FORTRAN с длиной L.
vi) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) данных INTEGER, REAL или DOUBLE PRECISION, то тип i-ого параметра должен быть соответственно INTEGER, REAL или DOUBLE PRECISION языка FORTRAN.
c) Если <раздел языка> (<language clause>) специфицирует PASCAL, то:
i) Тип параметра SQLCODE должен быть типом INTEGER языка Pascal.
ii) Любой <тип данных> (<data type>) в <объявлении параметра> (<parameter declaration>) должен быть CHARACTER, INTEGER, или REAL.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) CHARACTER(L) с некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть типом строки языка Pascal длины L.
iv) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует <тип данных> (<data type>) INTEGER или REAL, то тип i-ого параметра должен быть соответственно типом INTEGER, или REAL языка Pascal.
d) Если <раздел языка> (<language clause>) специфицирует PL1, то:
i) Тип параметра SQLCODE должен быть FIXED BINARY(PP), где РР определяемая реализацией точность, большая или равная 15.
ii) Любой <тип данных> (<data type>) в <объявлении параметра> (<parameter declaration>) должен быть CHARACTER, DECIMAL, или FLOAT.
iii) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует тип данных CHARACTER(L) с некоторой <длиной> (<lenght>) L, то тип i-ого параметра должен быть типом CHARACTER языка PL/1 с длиной L.
vi) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует тип данных DECIMAL(P,S) с некоторыми <точностью> (<precision>) P и <масштабом> (<scale>) S, то тип i-ого параметра должен быть типом FIXED REAL DECIMAL(P,S) языка PL/1.
v) Если i-ое <объявление параметра> (<parameter declaration>) специфицирует тип данных FLOAT(P) с некоторой <точностью> (<precision>) P, то тип i-ого параметра должнен быть типом FLOAT REAL BINARY (P) языка PL/1.
Общие правила
<Процедура> (<procedure>) определяет процедуру, которая может вызываться определяемым реализацией агентом. Когда процедура вызывается агентом языка программирования:а) Если для этого агента нет активной транзакции, то транзакция фактически инициируется и связывается с этим вызовом и с последующими вызовами этим агентом любой <процедуры> (<procedure>) в содержащем <модуле> (<module>), до тех пор, пока данный агент не закончит эту транзакцию.
b) Выполняется <оператор SQL> (<SQL statement>) S данной <процедуры> (<procedure>).
а) Если S выполнен успешно, то
i) Если S - <оператор чтения> (<fetch statement>) , для которого следующая строка не существует, то в параметр SQLCODE устанавливается значение 100.
ii) Если S - <оператор вставки> (<insert statement>), для которого не нашлось ни одной возможной строки, то в параметр SQLCODE устанавливается значение 100.
iii) Если S - <оператор выборки> (<select statement>), результатом которого явилась пустая таблица, то в параметр SQLCODE устанавливается значение 100.
iv) Если S - <оператор модификации: поисковый> (<update statement: searched>) или <оператор удаления: поисковый>) (<delete statement: searched>) с поиском, для которых не нашлись объектные строки для модификации или удаления, то в параметр SQLCODE устанавливается значение 100.
v) Во всех остальных случаях в параметр SQLCODE устанавливается 0.
b) Если S выполнен неуспешно, то
i) Все изменения, произведенные над базой данных при выполнении S, аннулируются.
ii) В параметр SQLCODE устанавливается отрицательное число со значением, определяемым реализацией Язык манипулирования данными (data manipulation language) 8.1 <Оператор закрытия> (<close statement>)
Функция
Закрыть курсор.
Формат
<close statement>::= CLOSE <cursor name>Синтаксические правила
Объемлющий модуль должен содержать объявление курсора, в котором используется это же имя курсора.Общие правила
Рекомендуем скачать другие рефераты по теме: реферат загрязнение, купить диплом высшее.
Категории:
1 2 3 4 | Следующая страница реферата