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


Специальные типы данных для драйвера, типы дескрипторов, типы сведений, диагностические типы и атрибуты

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

  • Индикаторы типов данных SQL используются в ParameterType в SQLBindParameter и в DataType в SQLGetTypeInfo и возвращаются SQLColAttribute, SQLColumns, SQLDescribeCol, SQLGetTypeInfo, SQLDescribeParam, SQLProcedureColumns и SQLSpecialColumns.

  • ДескрипторНые поля используются в FieldIdentifier в SQLColAttribute, SQLGetDescField и SQLSetDescField.

  • Поля диагностики используются в DiagIdentifier в SQLGetDiagField и SQLGetDiagRec.

  • Типы данных используются в InfoType в SQLGetInfo.

  • атрибуты Подключение ion и операторов Они используются в атрибутах в SQLGet Подключение Attr, SQLGetStmtAttr, SQLSet Подключение Attr и SQLSetStmtAttr.

Для каждого из этих элементов существует два набора значений: значения, зарезервированные для использования ODBC, и значения, зарезервированные для использования драйверами. Перед реализацией значений, зависящих от драйвера, модуль записи драйверов должен запросить значение для каждого типа, поля или атрибута из Open Group. Для разработки новых драйверов используйте диапазон, описанный в таблице ниже. Диспетчер драйверов ODBC 3.8 не создаст ошибку, если неизвестное значение используется не в диапазоне, описанном ниже. Однако более поздние версии диспетчера драйверов могут привести к ошибке, если неизвестные значения получены, которые не находятся в диапазоне.

Когда любой из этих значений передается функции ODBC, драйвер должен проверка, является ли значение допустимым. Драйверы возвращают SQLSTATE HYC00 (необязательный компонент не реализован) для значений, относящихся к другим драйверам.

Начиная с ODBC 3.8, средства записи драйверов могут выделять атрибуты для конкретного драйвера в зарезервированном диапазоне.

Примечание.

Диспетчер драйверов ODBC 3.8 не проверяет и не применяет эти диапазоны для обратной совместимости. Однако будущая версия диспетчера драйверов может применять их.

Тип атрибута Тип данных ODBC Базовый диапазон для конкретного драйвера Ограничение диапазона для конкретного драйвера Константы ODBC для базового диапазона значений для конкретного драйвера
Индикаторы типов данных SQL SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_SQL_TYPE_BASE
Поля дескриптора SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DESCRIPTOR_BASE
Поля диагностики SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DIAGNOSTIC_BASE
Типы информации SQLUSMALLINT 0x4000 0x7FFF SQL_DRIVER_INFO_TYPE_BASE
Атрибуты подключения SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_CONNECT_ATTR_BASE
Атрибуты инструкции SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_STATEMENT_ATTR_BASE

Примечание.

Типы данных для конкретного драйвера, поля дескриптора, поля диагностики, типы сведений, атрибуты инструкции и атрибуты подключения должны быть описаны в документации по драйверу. Когда любой из этих значений передается функции ODBC, драйвер должен проверка, является ли значение допустимым. Драйверы возвращают SQLSTATE HYC00 (необязательный компонент не реализован) для значений, относящихся к другим драйверам.

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

SQL_DRIVER_DIAGNOSTIC_BASE+0, SQL_DRIVER_DIAGNOSTIC_BASE +1