SQLRemoveDriverManager 函数

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

摘要
SQLRemoveDriverManager 在系统信息中的Odbcinst.ini条目中更改或删除有关 ODBC 核心组件的信息。

语法

  
BOOL SQLRemoveDriverManager(  
     LPDWORD     pdwUsageCount);  

参数

pdwUsageCount
[输出]调用此函数后驱动程序管理器的使用情况计数。

返回

如果成功,函数将返回 TRUE;如果失败,则返回 FALSE。 如果在调用此函数时系统信息中不存在任何条目,该函数将返回 FALSE。

诊断

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

*pfErrorCode 错误 说明
ODBC_ERROR_GENERAL_ERR 常规安装程序错误 发生错误,其中没有特定的安装程序错误。
ODBC_ERROR_COMPONENT_NOT_FOUND 在注册表中找不到组件 安装程序无法删除驱动程序管理器信息,因为该信息在注册表中不存在或在注册表中找不到。
ODBC_ERROR_USAGE_UPDATE_FAILED 无法递增或递减组件使用情况计数 安装程序未能减少驱动程序管理器的使用计数。
ODBC_ERROR_OUT_OF_MEM 内存不足 由于内存不足,安装程序无法执行该函数。

注释

SQLRemoveDriverManager 补充 了 SQLInstallDriverManager 函数,并更新系统信息中的组件使用情况计数。 只能从安装应用程序调用此函数。

SQLRemoveDriverManager 会将核心组件使用量计数递减 1。 如果组件使用情况计数为 0,则将删除条目系统信息。 核心组件条目位于系统信息中的以下位置,标题为“ODBC Core”:

HKEY_LOCAL_MACHINE

SOFTWARE

ODBC

Odbcinst.ini

注意

当组件使用情况计数和文件使用情况计数达到零时,应用程序不应以物理方式删除驱动程序管理器文件。

SQLRemoveDriverManager 实际上不会删除任何文件。 调用程序负责删除文件和维护文件使用情况计数。 但是,当组件使用情况计数和文件使用计数都达到零时,不应删除驱动程序管理器文件,因为这些文件可能由未增加文件使用计数的其他应用程序使用。

SQLRemoveDriverManager 作为卸载过程的一部分调用。 ODBC 核心组件 (包括驱动程序管理器、游标库、安装程序、语言库、管理员、thunking 文件等,) 作为一个整体卸载。 在卸载过程中调用 SQLRemoveDriverManager 时,不会删除以下文件:

ODBC32DLL
ODBCCR32.DLL
ODBCCU32.DLL
ODBCINT.DLL
ODBCTRAC.DLL
MSVCRT40.DLL
ODBCCP32.CPL

ODBCCP32.DLL
ODBC16GT.DLL
ODBC32GT.DLL
DS16GT.DLL
DS32GT.DLL
ODBCAD32.EXE

SQLRemoveDriverManager 也称为升级过程的一部分。 如果应用程序检测到它必须执行升级,并且它之前已安装了驱动程序,则应删除驱动程序,然后重新安装。

应首先调用 SQLRemoveDriverManager 来减少组件使用量计数。 然后,应调用 SQLInstallDriverEx 来递增组件使用情况计数。 应用程序安装程序必须将旧的核心组件文件替换为新文件。 文件使用情况计数将保持不变,而使用较旧版本核心组件文件的其他应用程序现在将使用较新版本的文件。

有关以下方面的信息 请参阅
安装驱动程序管理器 SQLInstallDriverManager