Функция 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 с поддержкой пула подключений