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の fRequestlpszArgsCPTimeout に設定して呼び出されます。 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