Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции СУБД.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.32 Mб
Скачать

25.5.Выполнение операторов

В данном разделе рассмотрим два набора функций: функции управления каталогом и выполнения SQL – операторов. Функции управления каталогом возвращают информацию из системного каталога источника данных: имена таблиц, столбцов, табличную статистику и т. д. Функции выполнения операторов включают в себя функции непосредственного и подготовленного выполнения и связывания параметров.

Любая функция, которая имеет отношение к обработке или передаче SQL – оператора, требует в качестве параметра идентификатор оператора. Идентификатор оператора аналогичен идентификатору окружения или соединения за исключением того, что он ссылается на SQL – оператор. Идентификатор соединения может быть связан с несколькими идентификаторами операторов, но каждый идентификатор оператора связан только со своим идентификатором соединения. Назначение идентификатора оператора производится вызовом SQLAllocStmt(), которая выделяет область хранения в памяти для идентификатора оператора и связывает его с соединением, которое определяется собственным идентификатором.

Синтаксис для SQLAllocStmt() имеет вид:

RETCODE SQLAllocStmt(hdbc, phstmt)

Таблица 22 Описание параметров SQLAllocStmt()

Тип

Аргумент

Использование

Описание

HDBC

hdbc

Вход

Идентификатор соединения

HSTMT*

phstmt

Выход

Указатель области хранения в памяти для идентификатора оператора

Парная для SQLAllocStmt() функция SQLFreeStmt() выполняет следующие действия:

• останавливает любые SQL – операторы, которые в данный момент обрабатываются и связаны с заданным идентификатором оператора,

• закрывают любые открытые курсоры, которые имеют отношение к определенному идентификатору оператора,

• отбрасывает ожидаемые результаты,

• дополнительно, освобождает все ресурсы, связанные с определенным идентификатором оператора.

Синтаксис SQLFreeStmt() имеет следующий вид:

RETCODE SQLFreeStmt (hstmt, fOption)

Таблица 23 Функция SQLFreeStmt

Тип

Аргумент

Использование

Описание

HSTMT

hstmt

Вход

Идентификатор оператора

UWORD

fOption

Вход

Одна из следующих опций:

•SQL_CLOSE,

•SQL_DROP

•SQL_UNBIND

•SQL_RESET_PARAMS

Опция SQL_CLOSE отбрасывает неизвлечённые результаты и закрывает любые связанные с ними курсоры. Эта опция не влияет на соответствующие параметры, подготовленные операторы или соответствующие столбцы результата.

SQL_DROP освобождает все ресурсы, связанные с идентификатором, закрывает курсор, если он открыт и отбрасывает все ожидаемые строки результирующего множества. Эта опция завершает все обращения к hstmt, так как после успешного вызова SQLFreeStmt с этим параметром, идентификатор становится недействительным.

SQL_UNBIND освобождает (“отвязывает”) все буферы столбцов, связанные со столбцами результирующего множества запроса посредством SQLBindCol(). Описание данной функции приведено в разделе 2.5 данного методического пособия.

SQL_RESET_PARAMS освобождает все буферы параметров с фактическими значениями, связанные с маркерами параметров строки запроса. Связывание формальных параметров запроса (маркеров) с буферами фактических значений производится функцией SQLBindParametr(), описание которой приводится ниже в данном разделе.