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


Функция SQLSetConnectAttrForDbcInfo

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

Сводка
SQLSetConnectAttrForDbcInfo совпадает с SQLSetConnectAttr, но задает атрибут маркера сведений о подключении вместо дескриптора подключения.

Синтаксис

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

Аргументы

hDbcInfoToken
[Входные данные] Дескриптор маркера.

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

ValuePtr
[Входные данные] Указатель на значение, связанное с атрибутом. В зависимости от значения Атрибута значение ValuePtr будет 32-разрядным целым числом без знака или указывает на строку символов, завершаемую значением NULL. Обратите внимание, что если аргумент Атрибута является значением для конкретного драйвера, значение в 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 соответствующим образом.

Возвраты

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR или SQL_INVALID_HANDLE.

Диагностика

Аналогично SQLSetConnectAttr, за исключением того, что диспетчер драйверов будет использовать HandleType SQL_HANDLE_DBC_INFO_TOKEN и дескрипторhDbcInfoToken.

Замечания

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

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

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

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

См. также

Разработка драйвера ODBC
Организация пулов соединений с учетом драйвера
Разработка драйвера ODBC с поддержкой пула подключений