SQLGetTranslator 関数

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

まとめ
SQLGetTranslator には、ユーザーが翻訳者を選択できるダイアログ ボックスが表示されます。

構文

  
BOOL SQLGetTranslator(  
     HWND      hwndParent,  
     LPSTR     lpszName,  
     WORD      cbNameMax,  
     WORD *    pcbNameOut,  
     LPSTR     lpszPath,  
     WORD      cbPathMax,  
     WORD *    pcbPathOut,  
     DWORD *   pvOption);  

引数

hwndParent
[入力]親ウィンドウ ハンドル。

lpszName
[入力/出力]システム情報からの変換プログラムの名前。

cbNameMax
[入力] lpszName バッファーの最大長。

pcbNameOut
[入力/出力] lpszName で渡されるか返された合計バイト数 (null 終了バイトを除く)。 返すことができるバイト数が cbNameMax 以上の場合、 lpszName 内のトランスレーター名は cbNameMax から null 終端文字を引いた値に切り捨てられます。 pcbNameOut 引数には null ポインターを指定できます。

lpszPath
[出力]翻訳 DLL の完全パス。

cbPathMax
[入力] lpszPath バッファーの最大長。

pcbPathOut
[出力] lpszPath で返される合計バイト数 (null 終了バイトを除く)。 返すことができるバイト数が cbPathMax 以上の場合、 lpszPath の変換 DLL パスは cbPathMax から null 終端文字を引いた値に切り捨てられます。 pcbPathOut 引数には null ポインターを指定できます。

pvOption
[出力] 32 ビット変換オプション。

戻り値

この関数は、成功した場合は TRUE、失敗した場合は FALSE、ユーザーがダイアログ ボックスをキャンセルした場合は FALSE を返します。

診断

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

*pfErrorCode エラー 説明
ODBC_ERROR_GENERAL_ERR 一般的なインストーラー エラー 特定のインストーラー エラーがないエラーが発生しました。
ODBC_ERROR_INVALID_BUFF_LEN バッファー長が無効です cbNameMax 引数または cbPathMax 引数が 0 以下でした。
ODBC_ERROR_INVALID_HWND 無効なウィンドウ ハンドル hwndParent 引数が無効または NULL です。
ODBC_ERROR_INVALID_NAME ドライバーまたはトランスレーター名が無効です lpszName 引数が無効です。 レジストリに見つかりませんでした。
ODBC_ERROR_LOAD_LIBRARY_FAILED ドライバーまたはトランスレーターのセットアップ ライブラリを読み込めませんでした トランスレーター ライブラリを読み込めませんでした。
ODBC_ERROR_INVALID_OPTION トランザクション オプションが無効です pvOption 引数に無効な値が含まれていました。
ODBC_ERROR_OUT_OF_MEM メモリ不足 メモリ不足のため、インストーラーで関数を実行できませんでした。

説明

hwndParent が null の場合、または lpszNamelpszPath、または pvOption が null ポインターの場合、SQLGetTranslator は FALSE を返します。 それ以外の場合は、次のダイアログ ボックスにインストールされているトランスレーターの一覧が表示されます。

[翻訳ツールの選択] ダイアログ ボックス

lpszName に有効なトランスレーター名が含まれている場合は、その名前が選択されます。 それ以外の場合は、 <Translator> が選択されていません。

ユーザーが [トランスレーター>なし] を選択<した場合、lpszNamelpszPathpvOption の内容はタッチされません。 SQLGetTranslator は、pcbNameOutpcbPathOut を 0 に設定し、TRUE を返します。

ユーザーがトランスレーターを選択した場合、 SQLGetTranslator はトランスレーターのセットアップ DLL で ConfigTranslator を呼び出します。 ConfigTranslator が FALSE を返す場合、SQLGetTranslator はダイアログ ボックスに戻ります。 ConfigTranslator が TRUE を返す場合、SQLGetTranslator は TRUE を返し、選択したトランスレーター名、パス、および変換オプションを返します。

対象 解決方法については、
トランスレーターの構成 ConfigTranslator
翻訳属性の取得 SQLGetConnectAttr
翻訳属性の設定 SQLSetConnectAttr