Функция SQLSetConnectAttrForDbcInfo

Соответствие
Введенная версия: Соответствие стандартам ODBC 3.81: ODBC

Сводка
SQLSetConnectAttrForDbcInfo — это то же самое, что и SQLSetConnectAttr, но он устанавливает атрибут на токене информации соединения, а не на дескрипторе соединения.

Syntax

  
SQLRETURN  SQLSetConnectAttrForDbcInfo(  
                SQLHDBC_INFO_TOKEN    hDbcInfoToken,  
                SQLINTEGER            Attribute,  
                SQLPOINTER            ValuePtr,  
                SQLINTEGER            StringLength );  

Arguments

hDbcInfoToken
[Ввод] Токен-аккаунт.

Атрибут
[Ввод] Атрибут к набору. Список допустимых атрибутов зависит от драйвера и совпадает с SQLSetConnectAttr.

ValuePtr
[Ввод] Указатель на значение, которое должно быть связано с атрибутом. В зависимости от значения Attribute, ValuePtr будет 32-битным беззнаковым целочисленным значением или будет указывать на строку символа с нулевой терминацией. Обратите внимание, что если аргумент Attribute является значением, специфичным для драйвера, то значение в ValuePtr может быть подписанным целым числом.

StringLength
[Входные данные] Если атрибут является атрибутом ODBC, а ValuePtr указывает на символьную строку или двоичный буфер, этот аргумент должен быть длиной *ValuePtr. Для данных строк символов этот аргумент должен содержать количество байт в строке.

Если атрибут является атрибутом ODBC, а ValuePtr является целым числом, StringLength игнорируется.

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

  • Если ЗначениеPtr является указателем на символьную строку, СтрокаLength — это длина строки или SQL_NTS.

  • Если ЗначениеPtr является указателем на двоичный буфер, приложение помещает результат макроса SQL_LEN_BINARY_ATTR(длина) в StringLength. Это помещает отрицательное значение в StringLength.

  • Если ЗначениеPtr является указателем на значение, отличное от символьной строки или двоичной строки, строка StringLength должна иметь значение SQL_IS_POINTER.

  • Если Значение ValuePtr содержит значение фиксированной длины, СтрокаLength либо SQL_IS_INTEGER, либо SQL_IS_UINTEGER соответствующим образом.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR или SQL_INVALID_HANDLE.

Diagnostics

То же самое с SQLSetConnectAttr, только менеджер драйверов будет использовать HandleType SQL_HANDLE_DBC_INFO_TOKEN и HandlehDbcInfoToken.

Remarks

SQLSetConnectAttrForDbcInfo — это то же самое, что и SQLSetConnectAttr, но он устанавливает атрибут на токене информации соединения, а не на дескрипторе соединения. Например, если SQLSetConnectAttr не распознаёт атрибут, SQLSetConnectAttrForDbcInfo также должен вернуть SQL_ERROR для этого атрибута.

Всякий раз, когда драйвер возвращает SQL_ERROR или SQL_INVALID_HANDLE, драйвер должен игнорировать этот атрибут для вычисления идентификатора пула. Кроме того, менеджер драйверов получает диагностическую информацию от hDbcInfoToken и возвращает SQL_SUCCESS_WITH_INFO приложению в SQLConnect и SQLDriverConnect. Таким образом, приложение может получить детали о причинах, по которым некоторые атрибуты нельзя задавать.

Приложения не должны вызывать эту функцию напрямую. Драйвер ODBC, поддерживающий пул соединений с учётом драйвера, должен реализовать эту функцию.

Включите sqlspi.h для разработки драйверов ODBC.