SQLConfigDataSource 関数
準拠
導入されたバージョン: ODBC 1.0
まとめ
SQLConfigDataSource は 、データ ソースを追加、変更、または削除します。
SQLConfigDataSource の機能には、ODBCCONF.EXEを使用してアクセスすることもできます。
構文
BOOL SQLConfigDataSource(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszAttributes);
引数
hwndParent
[入力]親ウィンドウ ハンドル。 ハンドルが null の場合、関数はダイアログ ボックスを表示しません。
fRequest
[入力]要求の種類。 fRequest 引数には、次のいずれかの値が含まれている必要があります。
ODBC_ADD_DSN: 新しいユーザー データ ソースを追加します。
ODBC_CONFIG_DSN: 既存のユーザー データ ソースを構成 (変更) します。
ODBC_REMOVE_DSN: 既存のユーザー データ ソースを削除します。
ODBC_ADD_SYS_DSN: 新しいシステム データ ソースを追加します。
ODBC_CONFIG_SYS_DSN: 既存のシステム データ ソースを変更します。
ODBC_REMOVE_SYS_DSN: 既存のシステム データ ソースを削除します。
ODBC_REMOVE_DEFAULT_DSN: システム情報から既定のデータ ソース仕様セクションを削除します。 (また、システム情報の Odbcinst.ini エントリから既定のドライバー仕様セクションも削除されます。この fRequest は、非推奨の SQLRemoveDefaultDataSource 関数と同じ関数を実行します)。このオプションを指定すると、 SQLConfigDataSource の呼び出しで他のすべてのパラメーターが NULL になります。NULL でない場合、それらは無視されます。
lpszDriver
[入力]物理ドライバー名ではなく、ユーザーに提示されるドライバーの説明 (通常は関連付けられている DBMS の名前)。
lpszAttributes
[入力]キーワードと値のペアの形式の属性の 2 倍の null で終わるリスト。 詳細については、「 ConfigDSN」を参照してください。
戻り値
関数は成功した場合は TRUE を返し、失敗した場合は FALSE を返します。 この関数が呼び出されたときにシステム情報にエントリが存在しない場合、関数は FALSE を返します。
診断
SQLConfigDataSource が FALSE を返す場合は、SQLInstallerError を呼び出すことによって、関連付けられた *pfErrorCode 値を取得できます。 次の表に、SQLInstallerError によって返される *pfErrorCode 値の一覧を示し、この関数のコンテキストでそれぞれについて説明します。
*pfErrorCode | エラー | 説明 |
---|---|---|
ODBC_ERROR_GENERAL_ERR | 一般的なインストーラー エラー | 特定のインストーラー エラーがないエラーが発生しました。 |
ODBC_ERROR_INVALID_HWND | 無効なウィンドウ ハンドル | hwndParent 引数が無効または NULL です。 |
ODBC_ERROR_INVALID_REQUEST_TYPE | 要求の種類が無効です | fRequest 引数は、次のいずれかではありません。 ODBC_ADD_DSN ODBC_CONFIG_DSN ODBC_REMOVE_DSN ODBC_ADD_SYS_DSN ODBC_CONFIG_SYS_DSN ODBC_REMOVE_SYS_DSN ODBC_REMOVE_DEFAULT_DSN |
ODBC_ERROR_INVALID_NAME | ドライバーまたはトランスレーター名が無効です | lpszDriver 引数が無効です。 レジストリに見つかりませんでした。 |
ODBC_ERROR_INVALID_KEYWORD_VALUE | キーワードと値のペアが無効です | lpszAttributes 引数に構文エラーが含まれていました。 |
ODBC_ERROR_REQUEST_FAILED | 要求 が失敗しました | インストーラーは 、fRequest 引数によって要求された操作を実行できませんでした。 ConfigDSN の呼び出しに失敗しました。 |
ODBC_ERROR_LOAD_LIBRARY_FAILED | ドライバーまたはトランスレーターのセットアップ ライブラリを読み込めませんでした | ドライバー セットアップ ライブラリを読み込めませんでした。 |
ODBC_ERROR_OUT_OF_MEM | メモリ不足 | メモリ不足のため、インストーラーで関数を実行できませんでした。 |
説明
SQLConfigDataSource は lpszDriver の値を使用して、ドライバーのセットアップ DLL の完全なパスをシステム情報から読み取ります。 DLL を読み込み、渡されたのと同じ引数を使用して ConfigDSN を呼び出します。
セットアップ DLL が見つからないか読み込めない場合、またはユーザーがダイアログ ボックスをキャンセルした場合、SQLConfigDataSource は FALSE を返します。 それ以外の場合は、 ConfigDSN から受信した状態が返されます。
SQLConfigDataSource は、システム DSN fRequestsをユーザー DSN fRequestsにマップします (ODBC_ADD_DSNにODBC_ADD_SYS_DSN、ODBC_CONFIG_DSNにODBC_CONFIG_SYS_DSN、ODBC_REMOVE_DSNにODBC_REMOVE_SYS_DSN)。 ユーザーとシステム DSN を区別するために、 SQLConfigDataSource は次の表に従ってインストーラー構成モードを設定します。 を返す前に、 SQLConfigDataSource は 構成モードを BOTHDSN にリセットします。 ConfigDSN (ドライバーによって実装) では、システム DSN をサポートするために SQLWriteDSNToIni と SQLWritePrivateProfileString を呼び出す必要があります。 詳細については、「 ConfigDSN 関数」を参照してください。
fRequest | 構成モード |
---|---|
ODBC_ADD_DSN | USERDSN_ONLY |
ODBC_CONFIG_DSN | USERDSN_ONLY |
ODBC_REMOVE_DSN | USERDSN_ONLY |
ODBC_ADD_SYS_DSN | SYSTEMDSN_ONLY |
ODBC_CONFIG_SYS_DSN | SYSTEMDSN_ONLY |
ODBC_REMOVE_SYS_DSN | SYSTEMDSN_ONLY |
関連する関数
対象 | 解決方法については、 |
---|---|
データ ソースの追加、変更、または削除 | ConfigDSN (セットアップ DLL 内) |
システム情報からのデータ ソース名の削除 | SQLRemoveDSNFromIni |
データ ソース名をシステム情報に追加する | SQLWriteDSNToIni |