SQLRemoveTranslator 関数

準拠
導入されたバージョン: ODBC 3.0

まとめ
SQLRemoveTranslator は、システム情報の Odbcinst.ini セクションからトランスレーターに関する情報を削除し、トランスレーターのコンポーネント使用量を 1 ずつ減らします。

構文

  
BOOL SQLRemoveTranslator(  
     LPCSTR    lpszTranslator,  
     LPDWORD   lpdwUsageCount);  

引数

lpszTranslator
[入力]システム情報のOdbcinst.iniキーに登録されているトランスレーターの名前。

lpdwUsageCount
[出力]この関数が呼び出された後のトランスレーターの使用数。

戻り値

関数は成功した場合は TRUE を返し、失敗した場合は FALSE を返します。 この関数が呼び出されたときにシステム情報にエントリが存在しない場合、関数は FALSE を返します。

診断

SQLRemoveTranslator が FALSE を返す場合は、SQLInstallerError を呼び出すことによって、関連付けられた *pfErrorCode 値を取得できます。 次の表に、SQLInstallerError によって返される *pfErrorCode 値の一覧を示し、この関数のコンテキストでそれぞれについて説明します。

*pfErrorCode エラー 説明
ODBC_ERROR_GENERAL_ERR 一般的なインストーラー エラー 特定のインストーラー エラーがないエラーが発生しました。
ODBC_ERROR_COMPONENT_NOT_FOUND レジストリにコンポーネントが見つかりません インストーラーは、レジストリに存在しなかったか、レジストリに見つからなかったため、トランスレーター情報を削除できませんでした。
ODBC_ERROR_INVALID_NAME ドライバーまたはトランスレーター名が無効です lpszTranslator 引数が無効です。
ODBC_ERROR_USAGE_UPDATE_FAILED コンポーネントの使用数をインクリメントまたはデクリメントできませんでした インストーラーは、ドライバーの使用数を減らすことができませんでした。
ODBC_ERROR_OUT_OF_MEM メモリ不足 メモリ不足のため、インストーラーで関数を実行できませんでした。

説明

SQLRemoveTranslator は、SQLInstallTranslatorEx 関数を補完し、システム情報のコンポーネントの使用数を更新します。 この関数は、セットアップ アプリケーションからのみ呼び出す必要があります。

SQLRemoveTranslator は、コンポーネントの使用数を 1 ずつ減らします。 コンポーネントの使用数が 0 になると、システム情報のトランスレーター エントリが削除されます。 translator エントリは、システム情報のトランスレーター名の下の次の場所にあります。

HKEY_LOCAL_MACHINE

SOFTWARE

ODBC

Odbcinst.ini

SQLRemoveTranslator では、実際にはファイルは削除されません。 呼び出し元のプログラムは、ファイルを削除し、ファイルの使用数を維持する役割を担います。 コンポーネントの使用数とファイル使用量の両方が 0 に達した後にのみ、ファイルは物理的に削除されます。 コンポーネント内の一部のファイルは、ファイル使用量を増やした他のアプリケーションによってファイルが使用されているかどうかに応じて、削除でき、他のファイルは削除できません。

SQLRemoveTranslator は、アップグレード プロセスの一部としても呼び出されます。 アプリケーションがアップグレードを実行する必要があることを検出し、以前にドライバーをインストールした場合は、ドライバーを削除してから再インストールする必要があります。 SQLRemoveTranslator を最初に呼び出してコンポーネントの使用数を減らし、次に SQLInstallTranslatorEx を 呼び出してコンポーネントの使用数を増やす必要があります。 アプリケーション セットアップ プログラムは、古いファイルを新しいファイルに物理的に置き換える必要があります。 ファイルの使用数は変わらず、古いバージョンのファイルを使用する他のアプリケーションでは新しいバージョンが使用されるようになります。

対象 解決方法については、
トランスレーターのインストール SQLInstallTranslatorEx