* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы
Некоторые
черты SQL/92 и SQL-3
Оператор
выделения памяти под дескриптор
::=
ALLOCATE
DESCRIPTOR
[WITH
MAX ]
::=
::=
(]
::= GLOBAL | LOCAL
::=
(
(
Комментарий:
Дескриптор,
это динамически выделяемая часть памяти
прикладной программы, служащая для
принятия информации о результате или
параметрах динамически подготовленного
оператора SQL или задания параметров
такого оператора. Смысл того, что для
выделения памяти используется оператор
SQL, а не просто стандартная функция alloc
или какая-нибудь другая функция
динамического запроса памяти, состоит
в том, что прикладная программа не знает
структуры дескриптора и даже его адреса.
Это позволяет не привязывать SQL к
особенностям какой-либо системы
программирования или ОС. Все обмены
информацией между собственно прикладной
программой и дескрипторами производятся
также с помощью специальных операторов
SQL (GET и SET, см. ниже).
Второй
вопрос: зачем вообще выделять память
под дескрипторы динамически. Это нужно
потому, что в общем случае прикладная
программа, использующая динамический
SQL, не знает в статике число одновременно
действующих динамических операторов
SQL, описание которых может потребоваться.
С этим же связано то, что имя дескриптора
может задаваться как литеральной строкой
символов, так и через строковую переменную
включающего языка, т.е. его можно
генерировать во время выполнения
программы.
В
операторе ALLOCATE DESCRIPTOR, помимо прочего,
может указываться число описательных
элементов, на которое он рассчитан.
Если, например, при выделении памяти
под дескриптор в разделе WITH MAX указано
целое положительное число N, а потом
дескриптор используется для описания
M (M>N) элементов (например, M столбцов
результата запроса), то это приводит к
возникновению исключительной ситуации.
Оператор
освобождения памяти из-под дескриптора
::=
DEALLOCATE
DESCRIPTOR
Комментарий:
Выполнение
этого оператора приводит к освобождению
памяти из-под ранее выделенного
дескриптора. После этого использование
имени дескриптора незаконно в любом
операторе, кроме ALLOCATE DESCRIPTOR.
Оператор
получения информации из области
дескриптора SQL
::=
GET
DESCRIPTOR
::=
(
VALUE
({}...]
::=
COUNT
::=
::=
::=
::=
::=
TYPE
(
LENGHT
(
OCTET_LENGHT
(
RETURNED_LENGHT
(
RETURNED_OCTET_LENGHT
(
PRECISION
(
SCALE
(
DATETIME_INTERVAL_CODE
(
DATATIME_INTERVAL_PRECISION
(
NULLABLE
(
INDICATOR
(
DATA
(
NAME
(
UNNAMED
(
COLLATION_CATALOG
(
COLLATION_SCHEMA
(
COLLATION_NAME
(
CHARACTER_SET_CATALOG
(
CHARACTER_SET_SCHEMA
(
CHARACTER_SET_NAME
::=
(
Комментарий:
Оператор
GET DESCRIPTOR служит для выборки описательной
информации, ранее размещенной в
дескрипторе с помощью оператора DESCRIBE.
За одно выполнение оператора можно
получить либо число заполненных элементов
дескриптора (COUNT), либо информацию,
содержащуюся в одном из заполненных
элементов.
Оператор
установки дескриптора
::=
SET
DESCRIPTOR
::=
(
VALUE
[{}...]
::= COUNT
::=
::=
::=
::=
Комментарий:
Оператор
SET DESCRIPTOR служит для заполнения элементов
дескриптора с целью его использования
в разделе USING. За одно выполнение оператора
можно поместить значение в поле COUNT
(число заполненных элементов), либо
частично или полностью сформировать
один элемент дескриптора.