Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория СУБД Часть 1 Копачев Алексей Геннадьевич, БГУИР (Мет пособие).pdf
Скачиваний:
63
Добавлен:
15.06.2014
Размер:
583 Кб
Скачать
☆

38

Некоторые черты SQL’92 и SQL–3 (SQL’99)

Динамическое SQL – в SQL’92

Оператор выделения памяти под дескриптор.

<allocate descriptor statement>::=ALLOCATE DESCRIPTOR <descriptor name>[WITH MAX <occurrences>] (occurrences)

<descriptor name>::=[GLOBAL | LOCAL] <name>

Дескриптор –динамическая часть прикладной программы, служащая для принятия информации о результате параметрах динамически подготовленного оператора SQL, а так же задание параметров этого оператора.

Для выделения памяти используется оператор SQL, т.к. прикладная программа не знает ни структуру будущего дескриптора, ни его адреса, и обмен информацией м\у прикладной программой и дескриптором происходит через специальные спецификаторы дескрипторов GET и SET. Имя дескрипторов задаётся литеральной строкой символов. В качестве имени может использоваться переменная включающего языка. В ней указывается максимальное количество описательных элементов(это задаётся в необязательном разделе [MAX<occurrences>])

Освобождение памяти от дескриптора.

DEALLOCATE DESCRIPTOR <descriptor name>

Происходит освобождение памяти под дескриптором. При этом указание имени дескриптора”незаконно” в любом другом операторе кроме этого.

Оператор получает информацию из области дескриптора. <get descriptor statement>::=

GET DESCRIPTOR <descr. name> <get descr. info>

<get descr. info>::=<get count> (VALUE <item number> <get item info> {,<get inem info}>)

<get item info>::=TYPE (LENGTH (OCTET_LENGHT (RETURNED_LENGHT (PRECISION

(SCALE

(DATA

(NAME

GET_DESCRIPTOR – для выборки описательной информации, размещенной в дескрипторе при помощи оператора describe. Заодно выполнение оператора Get

39

Descriptor можно получить либо число заполненных элементов дескриптора (COUNT), либо информацию, содержащуюся в одном заполненном элементе. Аналогично существует оператор SET DESCRIPTOR

SET DESCRIPTOR <descr name> <set info>

За одно выполнение записывает количество заполненных элементов или заполняет один из элементов.