SQLConfigDriver 函数
一致性
引入的版本:ODBC 2.5
摘要
SQLConfigDriver 加载相应的驱动程序设置 DLL 并调用 ConfigDriver 函数。
也可以使用 ODBCCONF.EXE访问 SQLConfigDriver 的功能。
语法
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 的长度。
印刷机
[输出] lpszMsg 中可返回的字节总数。 如果可返回的字节数大于或等于 cbMsgMax, 则 lpszMsg 中的输出消息将被截断为 cbMsgMax 减去 null 终止字符。 “印刷机”参数可以是 null 指针。
返回
如果成功,函数将返回 TRUE;如果失败,则返回 FALSE。
诊断
当 SQLConfigDriver 返回 FALSE 时,可以通过调用 SQLInstallerError 获取关联的 *pfErrorCode 值。 下表列出了 SQLInstallerError 可返回的 *pfErrorCode 值,并说明了此函数上下文中的每个值。
*pfErrorCode | 错误 | 说明 |
---|---|---|
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 后调用此函数。 调用程序应注意,此函数可能并非适用于所有驱动程序。 在这种情况下,调用程序应继续且不会出错。
Driver-Specific选项
应用程序可以使用 fRequest 参数请求驱动程序公开的特定于驱动程序的功能。 第一个选项的 fRequest 将为 ODBC_CONFIG_DRIVER_MAX+1,其他选项将从该值递增 1。 驱动程序为该函数所需的任何参数都应在 lpszArgs 参数中传递的以 null 结尾的字符串中提供。 提供此类功能的驱动程序应维护特定于驱动程序的选项表。 驱动程序文档中应完整记录选项。 使用特定于驱动程序的选项的应用程序编写者应注意,此用法将使应用程序的互操作性降低。
设置连接池超时
设置驱动程序配置时,可以设置连接池超时属性。 使用 fRequest ODBC_CONFIG_DRIVER 和 lpszArgs 设置为 CPTimeout 调用 SQLConfigDriver。 CPTimeout 确定连接可以在连接池中保留而不被使用的时间段。 超时过期后,连接将关闭并从池中删除。 默认超时为 60 秒。
当将 fRequest 设置为 ODBC_INSTALL_DRIVER 或 ODBC_REMOVE_DRIVER 调用 SQLConfigDriver 时,驱动程序管理器将加载相应的驱动程序设置 DLL 并调用 ConfigDriver 函数。 使用 fRequest ODBC_CONFIG_DRIVER 调用 SQLConfigDriver 时,所有处理都在 ODBC 安装程序中执行,因此不必加载驱动程序设置 DLL。
消息
驱动程序设置例程可以在 lpszMsg 缓冲区中将文本消息作为以 null 结尾的字符串发送到应用程序。 如果消息大于或等于 cbMsgMax 字符,则 ConfigDriver 函数会将该消息截断为 cbMsgMax 减去 null 终止字符。
相关函数
有关以下方面的信息 | 请参阅 |
---|---|
添加、修改或删除驱动程序 | 设置 DLL) 中的 ConfigDriver ( |
删除默认数据源 | SQLRemoveDefaultDataSource |