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 终止字符。