SQLConfigDriver 関数
準拠
導入されたバージョン: ODBC 2.5
まとめ
SQLConfigDriver は 、適切なドライバー セットアップ DLL を読み込み、 ConfigDriver 関数を呼び出します。
SQLConfigDriver の機能には、ODBCCONF.EXEを使用してアクセスすることもできます。
構文
BOOL SQLConfigDriver(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszArgs,
LPSTR lpszMsg,
WORD cbMsgMax,
WORD * pcbMsgOut);
引数
hwndParent
[入力]親ウィンドウ ハンドル。 ハンドルが null の場合、関数はダイアログ ボックスを表示しません。
fRequest
[入力]要求の種類。 fRequest には、次のいずれかの値が含まれている必要があります。
ODBC_CONFIG_DRIVER: ドライバーで使用される接続プールのタイムアウトを変更します。
ODBC_INSTALL_DRIVER: 新しいドライバーをインストールします。
ODBC_REMOVE_DRIVER: 既存のドライバーを削除します。
このオプションはドライバー固有の場合もあります。この場合、最初のオプションの fRequest は ODBC_CONFIG_DRIVER_MAX+1 から開始する必要があります。 追加オプションの fRequest は、ODBC_CONFIG_DRIVER_MAX+1 より大きい値から開始する必要もあります。
lpszDriver
[入力]システム情報に登録されているドライバーの名前。
lpszArgs
[入力]ドライバー固有 の fRequest の引数を含む null で終わる文字列。
lpszMsg
[出力]ドライバーのセットアップからの出力メッセージを含む null で終わる文字列。
cbMsgMax
[入力]lpszMsg の長さ。
pcbMsgOut
[出力] lpszMsg で返すために使用できる合計バイト数。 返される使用可能なバイト数が cbMsgMax 以上の場合、 lpszMsg の出力メッセージは cbMsgMax から null 終端文字を引いた値に切り捨てられます。 pcbMsgOut 引数には null ポインターを指定できます。
戻り値
関数は成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
診断
SQLConfigDriver が FALSE を返す場合は、SQLInstallerError を呼び出すことによって、関連付けられた *pfErrorCode 値を取得できます。 次の表に、SQLInstallerError によって返される *pfErrorCode 値の一覧を示し、この関数のコンテキストでそれぞれについて説明します。
*pfErrorCode | エラー | 説明 |
---|---|---|
ODBC_ERROR_GENERAL_ERR | 一般的なインストーラー エラー | 特定のインストーラー エラーがないエラーが発生しました。 |
ODBC_ERROR_INVALID_BUFF_LEN | バッファーの長さが無効です | lpszMsg 引数が無効です。 |
ODBC_ERROR_INVALID_HWND | 無効なウィンドウ ハンドル | hwndParent 引数が無効です。 |
ODBC_ERROR_INVALID_REQUEST_TYPE | 要求の種類が無効です | fRequest 引数は、次のいずれかではありません。 ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER fRequest 引数は、ODBC_CONFIG_DRIVER_MAX以下のドライバー固有のオプションでした。 |
ODBC_ERROR_INVALID_NAME | ドライバーまたはトランスレーター名が無効です | lpszDriver 引数が無効です。 レジストリに見つかりませんでした。 |
ODBC_ERROR_INVALID_KEYWORD_VALUE | キーワードと値のペアが無効です | lpszArgs 引数に構文エラーが含まれていました。 |
ODBC_ERROR_REQUEST_FAILED | 要求 が失敗しました | インストーラーは 、fRequest 引数によって要求された操作を実行できませんでした。 ConfigDriver の呼び出しに失敗しました。 |
ODBC_ERROR_LOAD_LIBRARY_FAILED | ドライバーまたはトランスレーターのセットアップ ライブラリを読み込めませんでした | ドライバー セットアップ ライブラリを読み込めませんでした。 |
ODBC_ERROR_OUT_OF_MEM | メモリ不足 | メモリ不足のため、インストーラーで関数を実行できませんでした。 |
説明
SQLConfigDriver を使用すると、アプリケーションは名前を知らずにドライバーの ConfigDriver ルーチンを呼び出し、ドライバー固有のセットアップ DLL を読み込むことができます。 セットアップ プログラムは、ドライバーセットアップ DLL のインストール後にこの関数を呼び出します。 呼び出し元のプログラムは、この関数がすべてのドライバーで使用できない可能性があることに注意する必要があります。 このような場合、呼び出し元のプログラムはエラーなしで続行する必要があります。
Driver-Specific オプション
アプリケーションは、 fRequest 引数を使用して、ドライバーによって公開されるドライバー固有の機能を要求できます。 最初のオプションの fRequest はODBC_CONFIG_DRIVER_MAX +1 になり、追加のオプションはその値から 1 ずつインクリメントされます。 その関数のドライバーで必要なすべての引数は、 lpszArgs 引数で渡される null で終わる文字列で指定する必要があります。 このような機能を提供するドライバーは、ドライバー固有のオプションのテーブルを維持する必要があります。 オプションは、ドライバーのドキュメントに完全に記載されている必要があります。 ドライバー固有のオプションを使用するアプリケーション ライターは、この使用によってアプリケーションの相互運用ができなくなることに注意する必要があります。
接続プールのタイムアウトの設定
接続プールのタイムアウト プロパティは、ドライバーの構成を設定するときに設定できます。 SQLConfigDriver は、ODBC_CONFIG_DRIVERの fRequest と lpszArgs を CPTimeout に設定して呼び出されます。 CPTimeout は、接続が使用されずに接続プールに残ることができる期間を決定します。 タイムアウトが切れると、接続は閉じられ、プールから削除されます。 既定のタイムアウトは 60 秒です。
fRequest を ODBC_INSTALL_DRIVER または ODBC_REMOVE_DRIVER に設定して SQLConfigDriver を呼び出すと、ドライバー マネージャーは適切なドライバー セットアップ DLL を読み込み、ConfigDriver 関数を呼び出します。 ODBC_CONFIG_DRIVERの fRequest を使用して SQLConfigDriver を呼び出すと、ドライバーセットアップ DLL を読み込む必要がないように、ODBC インストーラーですべての処理が実行されます。
メッセージ
ドライバー セットアップ ルーチンは、 lpszMsg バッファー内の null で終わる文字列として、アプリケーションにテキスト メッセージを送信できます。 メッセージが cbMsgMax 文字以上の場合、メッセージは cbMsgMax から ConfigDriver 関数による null 終端文字を 引いた値に切り捨てられます。
関連する関数
対象 | 解決方法については、 |
---|---|
ドライバーの追加、変更、または削除 | ConfigDriver(セットアップ DLL 内) |
既定のデータ ソースの削除 | SQLRemoveDefaultDataSource |