使用计数

注释

从 Windows XP 和 Windows Server 2003 开始,ODBC 包含在 Windows作系统中。 应仅在早期版本的 Windows 上显式安装 ODBC。

每个组件的注册表中维护两种类型的使用情况计数:组件使用情况计数和一个或多个可选文件使用情况计数。 组件使用情况计数可帮助安装程序 DLL 维护注册表项。 它存储在 ODBC Core、驱动程序和翻译器子项下的 UsageCount 值中。 有关 UsageCount 值的格式以及这些子键的详细信息,请参阅 ODBC 组件的注册表项

首次安装组件时,安装程序 DLL 会为其创建一个子项,并将该子项中的 UsageCount 值的数据设置为 1。 再次安装组件时,安装程序 DLL 会递增使用情况计数。 删除组件后,安装程序 DLL 会减少使用计数。 如果使用量计数降至 0,则安装程序 DLL 将删除组件的子项。

注意

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

文件使用计数有助于确定何时必须实际复制或删除文件,而不是仅更改使用计数的增减。 这一点很重要,因为 ODBC 组件以及 ODBC 组件中的文件是共享的,并且可由各种应用程序安装或删除。 如果组件使用情况计数和文件使用情况计数达到零,应用程序可以删除驱动程序和翻译文件。 但是,当组件使用情况计数和文件使用计数都达到零时,不应删除驱动程序管理器文件,因为这些文件可由未递增文件使用计数的其他应用程序使用。

注释

Microsoft Windows NT/Windows 2000 中,文件使用情况计数是可选的。

在调用 SQLInstallDriverManager、SQLInstallDriverExSQLInstallTranslatorExSQLRemoveDriverManager、SQLRemoveDriverManagerSQLRemoveDriverSQLRemoveTranslator 之后,安装程序会维护文件使用情况计数。

首次安装组件时,安装程序或安装程序 DLL 将为该组件中尚未在系统上的每个文件创建以下键下的值:

注释

HKEY_LOCAL_MACHINE

软件

Microsoft

Windows操作系统

CurrentVersion

SharedDlls

它将这些值的数据设置为 1,并将文件复制到系统。 再次安装组件时,安装程序或安装程序 DLL 会递增使用情况计数。 删除组件后,安装程序或安装程序 DLL 会减少使用情况计数。 如果任何使用计数降至 0,安装程序或安装程序 DLL 将删除该文件的值,如果组件是驱动程序或翻译器,则删除该文件。 不应删除驱动程序管理器文件。

下表显示了文件使用情况计数值的格式。

Name 数据类型 Data
完整路径 REG_DWORD count

例如,假设 Informix 的驱动程序使用 Infrmx32.dll 和 Infrmx32.hlp 文件,并假设此驱动程序已安装两次。 Informix 驱动程序的 SharedDlls 子项下的值如下所示:

C:\WINDOWS\SYSTEM32\INFRMX32.DLL : REG_DWORD : 0x2  
C:\WINDOWS\SYSTEM32\INFRMX32.HLP : REG_DWORD : 0x2