Функция SQLConfigDriver

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

Сводка
SQLConfigDriver загружает соответствующую библиотеку dll установки драйвера и вызывает функцию ConfigDriver .

Доступ к функциям SQLConfigDriver также можно получить с помощью ODBCCONF.EXE.

Синтаксис

  
BOOL SQLConfigDriver(  
     HWND     hwndParent,  
     WORD     fRequest,  
     LPCSTR   lpszDriver,  
     LPCSTR   lpszArgs,  
     LPSTR    lpszMsg,  
     WORD     cbMsgMax,  
     WORD *   pcbMsgOut);  

Аргументы

hwndParent
[Входные данные] Родительский дескриптор окна. Функция не будет отображать диалоговые окна, если дескриптор имеет значение NULL.

fRequest
[Входные данные] Тип запроса. fRequest должен содержать одно из следующих значений:

ODBC_CONFIG_DRIVER. Изменяет время ожидания пула подключений, используемое драйвером.

ODBC_INSTALL_DRIVER. Устанавливает новый драйвер.

ODBC_REMOVE_DRIVER. Удаляет существующий драйвер.

Этот параметр также может быть определенным драйвером, в этом случае fRequest для первого варианта должен начинаться с ODBC_CONFIG_DRIVER_MAX+1. FRequest для любого дополнительного параметра также должен начинаться со значения больше ODBC_CONFIG_DRIVER_MAX+1.

lpszDriver
[Входные данные] Имя драйвера, зарегистрированного в системной информации.

lpszArgs
[Входные данные] Строка, завершающаяся значением NULL, содержащая аргументы для fRequest для конкретного драйвера.

lpszMsg
[Выходные данные] Строка, завершающаяся значением NULL, содержащая выходное сообщение из программы установки драйвера.

cbMsgMax
[Входные данные] Длина lpszMsg.

pcbMsgOut
[Выходные данные] Общее количество байтов, доступных для возврата в lpszMsg. Если число байтов, доступных для возврата, больше или равно cbMsgMax, выходное сообщение в lpszMsg усечено до cbMsgMax минус символ завершения null. Аргумент pcbMsgOut может быть пустым указателем.

Возвраты

Функция возвращает значение TRUE, если оно выполнено успешно, значение FALSE, если оно завершается ошибкой.

Диагностика

Когда SQLConfigDriver возвращает значение FALSE, связанное значение *pfErrorCode можно получить путем вызова SQLInstallerError. В следующей таблице перечислены значения *pfErrorCode , которые можно возвращать SQLInstallerError и объясняет каждый из них в контексте этой функции.

*pfErrorCode Error Description
ODBC_ERROR_GENERAL_ERR Общая ошибка установщика Произошла ошибка, для которой не было определенной ошибки установщика.
ODBC_ERROR_INVALID_BUFF_LEN Недопустимая длина буфера Недопустимый аргумент lpszMsg .
ODBC_ERROR_INVALID_HWND Недопустимый дескриптор окна Недопустимый аргумент hwndParent .
ODBC_ERROR_INVALID_REQUEST_TYPE Недопустимый тип запроса Аргумент fRequest не был одним из следующих:

ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER

Аргумент fRequest был параметром для конкретного драйвера, который был меньше или равен ODBC_CONFIG_DRIVER_MAX.
ODBC_ERROR_INVALID_NAME Недопустимое имя драйвера или переводчика Недопустимый аргумент lpszDriver . Его не удалось найти в реестре.
ODBC_ERROR_INVALID_KEYWORD_VALUE Недопустимые пары "ключевое слово-значение" Аргумент lpszArgs содержал синтаксическую ошибку.
ODBC_ERROR_REQUEST_FAILED Сбой запроса Установщик не смог выполнить операцию, запрошенную аргументом fRequest . Сбой вызова ConfigDriver .
ODBC_ERROR_LOAD_LIBRARY_FAILED Не удалось загрузить библиотеку установки драйвера или переводчика Не удалось загрузить библиотеку установки драйвера.
ODBC_ERROR_OUT_OF_MEM Недостаточно памяти Установщик не мог выполнить функцию из-за нехватки памяти.

Комментарии

SQLConfigDriver позволяет приложению вызывать подпрограмму ConfigDriver драйвера без необходимости знать имя и загружать библиотеку DLL установки для конкретного драйвера. Программа установки вызывает эту функцию после установки библиотеки DLL установки драйвера. Вызывающая программа должна учитывать, что эта функция может быть недоступна для всех драйверов. В таком случае вызывающая программа должна продолжаться без ошибок.

Параметры для конкретного драйвера

Приложение может запрашивать функции, предоставляемые драйвером, с помощью аргумента fRequest . FRequest для первого параметра будет ODBC_CONFIG_DRIVER_MAX+1, а дополнительные параметры будут увеличиваться на 1 из этого значения. Все аргументы, необходимые драйвером для этой функции, должны быть предоставлены в строке, завершаемой значением NULL, переданной в аргументе lpszArgs . Драйверы, предоставляющие такие функциональные возможности, должны поддерживать таблицу параметров для конкретного драйвера. Параметры должны быть полностью документированы в документации по драйверу. Записи приложений, использующие параметры для конкретного драйвера, должны учитывать, что это использование сделает приложение менее совместимым.

Настройка времени ожидания пула подключений

Свойства времени ожидания пула подключений можно задать при настройке драйвера. SQLConfigDriver вызывается с fRequest ODBC_CONFIG_DRIVER и lpszArgs , для параметра CPTimeout. CPTimeout определяет период времени, когда подключение может оставаться в пуле подключений без использования. По истечении времени ожидания подключение закрывается и удаляется из пула. Время ожидания по умолчанию — 60 секунд.

При вызове SQLConfigDriver с параметром fRequest задано значение ODBC_INSTALL_DRIVER или ODBC_REMOVE_DRIVER, диспетчер драйверов загружает соответствующую библиотеку DLL установки драйвера и вызывает функцию ConfigDriver . При вызове SQLConfigDriver с помощью fRequest ODBC_CONFIG_DRIVER все обработка выполняется в установщике ODBC, чтобы библиотека DLL установки драйвера не должна быть загружена.

Сообщения

Подпрограмма установки драйвера может отправлять текстовое сообщение приложению в виде строк, завершаемых значением NULL, в буфере lpszMsg . Сообщение будет усечено до cbMsgMax минус символ завершения null функцией ConfigDriver, если она больше или равно символам cbMsgMax.

Сведения Раздел
Добавление, изменение или удаление драйвера ConfigDriver (в библиотеке DLL установки)
Удаление источника данных по умолчанию SQLRemoveDefaultDataSource