SQLInstallDriverManager 函数

一致性
引入的版本:ODBC 1.0:在 Windows XP Service Pack 2、Windows Server 2003 Service Pack 1 及更高版本的操作系统中已弃用

摘要
SQLInstallDriverManager 返回 ODBC 核心组件安装的目标目录的路径。 调用程序实际上必须将驱动程序管理器的文件复制到目标目录。

语法

  
BOOL SQLInstallDriverManager(  
     LPSTR    lpszPath,  
     WORD     cbPathMax,  
     WORD *   pcbPathOut);  

参数

lpszPath
[输出]安装的目标目录的路径。

cbPathMax
[输入] lpszPath 的长度。 这必须至少为 _MAX_PATH 个字节。

2016 年 12 月
[输出] (排除 lpszPath 中返回的 null 终止字节) 的总字节数。 如果可返回的字节数大于或等于 cbPathMax则 lpszPath 中的路径将被截断为 cbPathMax 减去 null 终止字符。 该参数可以为 null 指针。

返回

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

诊断

SQLInstallDriverManager 返回 FALSE 时,可以通过调用 SQLInstallerError 获取关联的 *pfErrorCode 值。 下表列出了 SQLInstallerError 可返回的 *pfErrorCode 值,并说明了此函数上下文中的每个值。

*pfErrorCode 错误 说明
ODBC_ERROR_GENERAL_ERR 常规安装程序错误 发生错误,其中没有特定的安装程序错误。
ODBC_ERROR_INVALID_BUFF_LEN 缓冲区长度无效 lpszPath 参数不够大,无法包含输出路径。 缓冲区包含截断的路径。

cbPathMax 参数小于 _MAX_PATH。
ODBC_ERROR_USAGE_UPDATE_FAILED 无法递增或递减组件使用情况计数 安装程序无法递增 ODBC 核心组件使用情况计数。
ODBC_ERROR_OUT_OF_MEM 内存不足 由于内存不足,安装程序无法执行该函数。

注释

调用 SQLInstallDriverManager 以返回 ODBC 核心组件的路径,并增加系统信息中的组件使用情况计数。 如果驱动程序管理器的版本已存在,但驱动程序的组件使用情况计数不存在,则新的组件使用情况计数值设置为 2。

应用程序安装程序负责以物理方式复制核心组件文件并维护文件使用情况计数。 如果之前尚未安装核心组件文件,则应用程序安装程序必须复制该文件,并创建文件使用情况计数。 如果之前已安装该文件,安装程序只会增加文件使用计数。

如果早期版本的驱动程序管理器以前由应用程序安装程序安装,则应卸载核心组件,然后重新安装,以便核心组件使用量计数有效。 应首先调用 SQLRemoveDriverManager 来减少组件使用量计数。 然后,应调用 SQLInstallDriverManager 来递增组件使用情况计数。 应用程序安装程序必须将旧的核心组件文件替换为新文件。 文件使用情况计数将保持不变,而使用较旧版本核心组件文件的其他应用程序现在将使用较新版本的文件。

在 ODBC 核心组件、驱动程序和翻译器的新安装中,应用程序安装程序应按顺序调用以下函数: SQLInstallDriverManagerSQLInstallDriverExSQLConfigDriver (, fRequest 为 ODBC_INSTALL_DRIVER) ,然后 是 SQLInstallTranslatorEx。 在卸载核心组件、驱动程序和翻译器时,应用程序安装程序应按顺序调用以下函数: SQLRemoveTranslatorSQLRemoveDriverSQLRemoveDriverManager。 必须按此顺序调用这些函数。 在所有组件的升级中,应按顺序调用所有卸载函数,然后按顺序调用所有安装函数。

有关以下方面的信息 请参阅
添加、修改或删除驱动程序 SQLConfigDriver
安装驱动程序 SQLInstallDriverEx
安装翻译器 SQLInstallTranslatorEx
删除驱动程序 SQLRemoveDriver
删除驱动程序管理器 SQLRemoveDriverManager
删除翻译器 SQLRemoveTranslator