使用状況のカウント

Note

Windows XP および Windows Server 2003 以降、ODBC は Windows オペレーティング システムに含まれるようになりました。 ODBC は、以前のバージョンの Windows にのみ明示的にインストールする必要があります。

各コンポーネントのレジストリには、コンポーネント使用状況カウントと、オプションの 1 つ以上のファイル使用状況カウントという 2 種類の使用状況カウントが保持されます。 コンポーネント使用状況カウントは、インストーラー DLL がレジストリ エントリを維持する際に役立ちます。 ODBC Core、ドライバー、およびトランスレーター サブキーの下の UsageCount 値に格納されます。 UsageCount 値の形式とこれらのサブキーの詳細については、「ODBC コンポーネントのレジストリ エントリ」を参照してください。

コンポーネントが初めてインストールされると、インストーラー DLL によってそのコンポーネント用のサブキーが作成され、そのサブキーの UsageCount 値のデータが 1 に設定されます。 コンポーネントが再インストールされると、インストーラー DLL によって使用状況カウントがインクリメントされます。 コンポーネントが削除されると、インストーラー DLL によって使用状況カウントがデクリメントされます。 使用状況カウントがゼロになった場合、インストーラー DLL はコンポーネントのサブキーを削除します。

注意

コンポーネント使用状況カウントとファイル使用状況カウントがゼロになった場合、アプリケーションでドライバー マネージャー ファイルを物理的に削除しないでください。

ファイル使用状況カウントは、使用状況カウントを増減したタイミングではなく、ファイルを実際にコピーまたは削除する必要があるタイミングを判断するのに役立ちます。 ODBC コンポーネント、ひいては ODBC コンポーネント内のファイルが共有され、さまざまなアプリケーションでインストールまたは削除できるため、このことは重要です。 アプリケーションは、コンポーネント使用状況カウントとファイル使用状況カウントがゼロになったときに、ドライバー ファイルとトランスレーター ファイルを削除できます。 ただし、コンポーネント使用状況カウントとファイル使用状況カウントの両方がゼロに達した場合は、ドライバー マネージャー ファイルを削除しないでください。これらのファイルは、ファイル使用状況カウントをインクリメントしていない他のアプリケーションで使用できるためです。

Note

ファイル使用状況カウントは、Microsoft Windows NT/Windows 2000 ではオプションとして選択できます。

ファイル使用状況カウントは、SQLInstallDriverManagerSQLInstallDriverExSQLInstallTranslatorExSQLRemoveDriverManagerSQLRemoveDriver、または SQLRemoveTranslator を呼び出した後に、セットアップ プログラムによって維持されます。

コンポーネントが初めてインストールされると、セットアップ プログラムまたはインストーラー DLL によって、そのコンポーネント内の各ファイルに対して、システム上にない次のキーの下に値が作成されます。

Note

HKEY_LOCAL_MACHINE

SOFTWARE

Microsoft

Windows

CurrentVersion

SharedDlls

これらの値のデータを 1 に設定し、ファイルをシステムにコピーします。 コンポーネントが再インストールされると、セットアップ プログラムまたはインストーラー DLL によって使用状況カウントがインクリメントされます。 コンポーネントが削除されると、セットアップ プログラムまたはインストーラー DLL によって使用状況カウントがデクリメントされます。 使用状況カウントがゼロになると、セットアップ プログラムまたはインストーラー DLL によってファイルの値が削除され、コンポーネントがドライバーまたはトランスレーターである場合は、ファイルが削除されます。 ドライバー マネージャー ファイルを削除しないでください。

ファイル使用状況カウントの値の形式を次の表に示します。

名前 データの種類 データ​​
full-path REG_DWORD count

たとえば、Informix 用のドライバーが Infrmx32.dll ファイルと Infrmx32.hlp ファイルを使用し、このドライバーが 2 回インストールされているとします。 Informix ドライバーの SharedDlls サブキーの値は次のようになります。

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