SQLConfigDataSource Function
一致性
引入的版本:ODBC 1.0
摘要
SQLConfigDataSource 添加、修改或删除数据源。
也可以使用 ODBCCONF.EXE访问 SQLConfigDataSource 的功能。
语法
BOOL SQLConfigDataSource(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszAttributes);
自变量
hwndParent
[输入]父窗口句柄。 如果句柄为 null,函数将不会显示任何对话框。
fRequest
[输入]请求的类型。 fRequest 参数必须包含以下值之一:
ODBC_ADD_DSN:添加新的用户数据源。
ODBC_CONFIG_DSN:配置 (修改) 现有用户数据源。
ODBC_REMOVE_DSN:删除现有用户数据源。
ODBC_ADD_SYS_DSN:添加新的系统数据源。
ODBC_CONFIG_SYS_DSN:修改现有系统数据源。
ODBC_REMOVE_SYS_DSN:删除现有系统数据源。
ODBC_REMOVE_DEFAULT_DSN:从系统信息中删除默认数据源规范部分。 (它还从系统信息中的Odbcinst.ini项中删除默认驱动程序规范部分。此 fRequest 执行与已弃用 的 SQLRemoveDefaultDataSource 函数相同的函数。) 指定此选项时,对 SQLConfigDataSource 的调用中的所有其他参数都应为 NUL;如果它们不是 NULL,则将忽略它们。
lpszDriver
[输入]驱动程序说明 (通常向用户显示的关联 DBMS) 的名称,而不是物理驱动程序名称。
lpszAttributes
[输入]以关键字值对形式以 null 结尾的双重属性列表。 有关详细信息,请参阅 ConfigDSN。
返回
如果成功,函数将返回 TRUE;如果失败,则返回 FALSE。 如果在调用此函数时系统信息中不存在任何条目,则函数返回 FALSE。
诊断
当 SQLConfigDataSource 返回 FALSE 时,可以通过调用 SQLInstallerError 获取关联的 *pfErrorCode 值。 下表列出了 SQLInstallerError 可返回的 *pfErrorCode 值,并说明了此函数上下文中的每个值。
*pfErrorCode | 错误 | 说明 |
---|---|---|
ODBC_ERROR_GENERAL_ERR | 常规安装程序错误 | 发生错误,其中没有特定的安装程序错误。 |
ODBC_ERROR_INVALID_HWND | 无效的窗口句柄 | hwndParent 参数无效或为 NULL。 |
ODBC_ERROR_INVALID_REQUEST_TYPE | 请求类型无效 | fRequest 参数不是下列参数之一: ODBC_ADD_DSN ODBC_CONFIG_DSN ODBC_REMOVE_DSN ODBC_ADD_SYS_DSN ODBC_CONFIG_SYS_DSN ODBC_REMOVE_SYS_DSN ODBC_REMOVE_DEFAULT_DSN |
ODBC_ERROR_INVALID_NAME | 驱动程序或翻译器名称无效 | lpszDriver 参数无效。 无法在注册表中找到它。 |
ODBC_ERROR_INVALID_KEYWORD_VALUE | 无效的关键字-值对 | lpszAttributes 参数包含语法错误。 |
ODBC_ERROR_REQUEST_FAILED | 请求 失败 | 安装程序无法执行 fRequest 参数请求的操作。 对 ConfigDSN 的调用失败。 |
ODBC_ERROR_LOAD_LIBRARY_FAILED | 无法加载驱动程序或翻译器安装库 | 无法加载驱动程序设置库。 |
ODBC_ERROR_OUT_OF_MEM | 内存不足 | 由于内存不足,安装程序无法执行函数。 |
注释
SQLConfigDataSource 使用 lpszDriver 的值从系统信息中读取驱动程序的安装 DLL 的完整路径。 它加载 DLL,并使用传递给它的相同参数调用 ConfigDSN 。
如果 SQLConfigDataSource 无法找到或加载安装 DLL,或者用户取消对话框,则 SQLConfigDataSource 将返回 FALSE。 否则,它将返回从 ConfigDSN 接收的状态。
SQLConfigDataSource 将 System DSN fRequest映射到 User DSN fRequest (ODBC_ADD_SYS_DSN ODBC_ADD_DSN,将ODBC_CONFIG_SYS_DSN映射到ODBC_CONFIG_DSN,将ODBC_REMOVE_SYS_DSN映射到 ODBC_REMOVE_DSN) 。 为了区分用户和系统 DSN, SQLConfigDataSource 根据下表设置安装程序配置模式。 在返回之前, SQLConfigDataSource 会将配置模式重置为 BOTHDSN。 驱动程序) 实现的 ConfigDSN (应调用 SQLWriteDSNToIni 和 SQLWritePrivateProfileString 以支持系统 DSN。 有关详细信息,请参阅 ConfigDSN 函数。
fRequest | 配置模式 |
---|---|
ODBC_ADD_DSN | USERDSN_ONLY |
ODBC_CONFIG_DSN | USERDSN_ONLY |
ODBC_REMOVE_DSN | USERDSN_ONLY |
ODBC_ADD_SYS_DSN | SYSTEMDSN_ONLY |
ODBC_CONFIG_SYS_DSN | SYSTEMDSN_ONLY |
ODBC_REMOVE_SYS_DSN | SYSTEMDSN_ONLY |
相关函数
有关以下方面的信息 | 请参阅 |
---|---|
添加、修改或删除数据源 | 设置 DLL) 中的 ConfigDSN ( |
从系统信息中删除数据源名称 | SQLRemoveDSNFromIni |
向系统信息添加数据源名称 | SQLWriteDSNToIni |