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 的长度。

印刷机
[输出] lpszMsg 中可返回的字节总数。

如果可返回的字节数大于或等于 cbMsgMax则 lpszMsg 中的输出消息将被截断为 cbMsgMax 减去 null 终止字符。 “印刷机”参数可以是 null 指针。

返回

如果成功,函数将返回 TRUE;如果失败,则返回 FALSE。

诊断

ConfigDriver 返回 FALSE 时,关联的 *pfErrorCode 值将通过调用 SQLPostInstallerError 发布到安装程序错误缓冲区,并且可以通过调用 SQLInstallerError 获取。 下表列出了 SQLInstallerError 可返回的 *pfErrorCode 值,并说明了此函数上下文中的每个值。

*pfErrorCode 错误 说明
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 安装程序错误。 调用 SQLPostInstallerError 函数时,SzError 参数应包含特定于驱动程序的错误消息。

注释

Driver-Specific选项

应用程序可以使用 fRequest 参数请求驱动程序公开的特定于驱动程序的功能。 第一个选项的 fRequest 将ODBC_CONFIG_DRIVER_MAX加 1,其他选项将从该值递增 1。 驱动程序为该函数所需的任何参数都应在 lpszArgs 参数中传递的以 null 结尾的字符串中提供。 提供此类功能的驱动程序应维护特定于驱动程序的选项表。 驱动程序文档中应完整记录选项。 使用特定于驱动程序的选项的应用程序编写者应注意,这会降低应用程序的互操作性。

消息

驱动程序设置例程可以在 lpszMsg 缓冲区中将文本消息作为以 null 结尾的字符串发送到应用程序。 如果消息大于或等于 cbMsgMax 字符,则 ConfigDriver 函数会将该消息截断为 cbMsgMax 减去 null 终止字符。