使用情况计数

注意

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

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

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

注意

如果组件使用情况计数和文件使用情况计数变为零,应用程序不应以物理方式删除驱动程序管理器文件。

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

注意

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

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

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

注意

HKEY_LOCAL_MACHINE

SOFTWARE

Microsoft

Windows

CurrentVersion

SharedDlls

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

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

名称 数据类型 数据
full-path 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