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


Функция ConfigDriver

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

Сводка
ConfigDriver позволяет программе установки выполнять функции установки и удаления без вызова ConfigDSN программы. Эта функция будет выполнять такие функции, как создание сведений о системе для конкретного драйвера и выполнение преобразований DSN во время установки, а также очистка системных изменений информации во время удаления. Эта функция предоставляется библиотекой DLL установки драйвера или отдельной библиотекой dll установки.

Синтаксис

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

Аргументы

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

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

ODBC_INSTALL_DRIVER. Установка нового драйвера.

ODBC_REMOVE_DRIVER. Удаление драйвера.

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

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

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

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

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

pcbMsgOut
[Выходные данные] Общее количество байтов, доступных для возврата в lpszMsg.

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

Возвраты

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

Диагностика

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

*pfErrorCode Error Description
ODBC_ERROR_INVALID_HWND Недопустимый дескриптор окна Недопустимый аргумент hwndParent .
ODBC_ERROR_INVALID_REQUEST_TYPE Недопустимый тип запроса Аргумент fRequest не был одним из следующих:

ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER

Параметр для конкретного драйвера был меньше или равен ODBC_CONFIG_DRIVER_MAX.
ODBC_ERROR_INVALID_NAME Недопустимое имя драйвера или переводчика Недопустимый аргумент lpszDriver . Его не удалось найти в реестре.
ODBC_ERROR_REQUEST_FAILED Сбой запроса Не удалось выполнить операцию, запрошенную аргументом fRequest .
ODBC_ERROR_DRIVER_SPECIFIC Ошибка драйвера или переводчика Ошибка для конкретного драйвера, для которой не определена ошибка установщика ODBC. Аргумент SzError в вызове функции SQLPostInstallerError должен содержать сообщение об ошибке для конкретного драйвера.

Комментарии

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

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

Сообщения

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