Поделиться через


Типы дескрипторов

Дескриптор используется для описания одного из следующих элементов:

  • Набор нулевых или более параметров. Дескриптор параметра можно использовать для описания:

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

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

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

  • Одна строка данных базы данных. Дескриптор строки можно использовать для описания:

    • Буфер строки реализации, содержащий строку из базы данных. (Эти буферы концептуально содержат данные, записанные в базу данных или считываются из нее. Однако хранимая форма данных базы данных не указана. База данных может выполнить дополнительное преобразование данных из его формы в буфере реализации.)

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

    Приложение работает с дескриптором строки приложения в любом случае, если данные столбцов из базы данных должны отображаться в переменных приложения. Чтобы добиться преобразования данных столбцов, приложение может указать различные типы данных из дескриптора строки реализации.

Типы дескриптора приведены в следующей таблице.

Тип буфера Строки Динамические параметры
Буфер приложения Дескриптор строки приложения (ARD) Дескриптор параметра приложения (APD)
Буфер реализации Дескриптор строки реализации (IRD) Дескриптор параметра реализации (IPD)

Если приложение указывает различные типы данных в соответствующих записях реализации и дескрипторов приложений, драйвер выполняет преобразование данных при использовании дескрипторов. Например, он может преобразовывать числовые и значения даты и времени в формат символьной строки. (Допустимые преобразования см. в разделе Приложение D. Типы данных.)

Дескриптор может выполнять различные роли. Различные операторы могут совместно использовать любой дескриптор, который приложение явно выделяет. Дескриптор строки в одной инструкции может служить дескриптором параметров в другой инструкции.

Всегда известно, является ли дескриптор приложения дескриптором приложения или дескриптором реализации, даже если дескриптор еще не использовался в операции базы данных. Для дескрипторов, которые реализация неявно выделяет, реализация записывает предопределенную строку относительно дескриптора инструкции. Любой дескриптор, выделенный приложением путем вызова SQLAllocHandle , является дескриптором приложения.