次の方法で共有


SQLReadFileDSN 関数

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

まとめ
SQLReadFileDSN は 、ファイル DSN から情報を読み取ります。

構文

  
BOOL SQLReadFileDSN(  
     LPCSTR   lpszFileName,  
     LPCSTR   lpszAppName,  
     LPCSTR   lpszKeyName,  
     LPSTR    lpszString,  
     WORD     cbString,  
     WORD *   pcbString);  

引数

lpszFileName
[入力].dsn ファイルの名前を含むデータ バッファーへのポインター。 拡張子が .dsn でないすべてのファイル名に、.dsn 拡張子が追加されます。 *lpszFileName の値は、null で終わる文字列である必要があります。

lpszAppName
[入力]アプリケーションの名前を含むデータ バッファーへのポインター。 これは ODBC セクションの "ODBC" です。 *lpszAppName の値は、null で終わる文字列である必要があります。

lpszKeyName
[入力]読み取るキーの名前を含むデータ バッファーへのポインター。 予約済みキーワードについては、「コメント」を参照してください。 *lpszAppName の値は、null で終わる文字列である必要があります。

lpszString
[出力]読み取るキーに関連付けられている文字列を含むデータ バッファーへのポインター。

*lpszFileName が有効な .dsn ファイル名で、lpszAppName 引数が null ポインターで、lpszKeyName 引数が null ポインターである場合、*lpszString には有効なアプリケーションのリストが含まれます。 *lpszFileName が有効な .dsn ファイル名で、*lpszAppName が有効なアプリケーション名であるのに lpszKeyName 引数が null ポインターである場合、*lpszString には DSN ファイルの適切なセクションに、セミコロンで区切られた有効な予約キーワードのリストが含まれます。 *lpszFileName が有効な .dsn ファイル名で、*lpszAppName が null ポインターで、lpszKeyName 引数が null ポインターである場合、*lpszString には DSN ファイル内のセクションのリストがセミコロンで区切られて含まれます。

cbString
[入力] *lpszString バッファーの 長さ。

pcbString
[出力] *lpszString で返すために使用できる合計バイト数。 返すことができるバイト数が cbString 以上の場合、 *lpszString の出力文字列は cbString から null 終端文字を引いた値に切り捨てられます。 pcbString 引数には null ポインターを指定できます。

戻り値

関数は成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

診断

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

*pfErrorCode エラー 説明
ODBC_ERROR_GENERAL_ERR 一般的なインストーラー エラー 特定のインストーラー エラーがないエラーが発生しました。
ODBC_ERROR_INVALID_BUFF_LEN バッファー長が無効です lpszString 引数は NULL でした。

cbString 引数が 0 以下でした。
ODBC_ERROR_INVALID_PATH インストール パスが無効です lpszFileName 引数で指定されたファイル名のパスが無効です。
ODBC_ERROR_INVALID_REQUEST_TYPE 要求の種類が無効です lpszAppName 引数は NULL で、lpszKeyName 引数は有効でした。
ODBC_ERROR_OUT_OF_MEM メモリ不足 メモリ不足のため、インストーラーで関数を実行できませんでした。
ODBC_ERROR_OUTPUT_STRING_TRUNCATED 出力文字列の切り捨て cbString の値が *pcbString の値以下であるため、*lpszString で返された文字列が切り捨てられました。
ODBC_ERROR_REQUEST_FAILED 要求が失敗しました キーワードがファイル DSN に存在しませんでした。

説明

ODBC は、接続情報を格納するセクション名 [ODBC] を予約します。 このセクションの予約済みキーワードは、 SQLDriverConnect の接続文字列用に予約されているものと同じです。 (詳細については、「 SQLDriverConnect 関数の説明」を参照してください)。

アプリケーションでは、これらの予約済みキーワードを使用して、ファイル DSN 内の情報を読み取ることができます。 アプリケーションがファイル DSN に関連付けられている DSN レス接続文字列を調べる場合は、[ODBC] セクションの予約済み接続文字列キーワードのいずれかに対して SQLReadFileDSN を呼び出すことができます。 DSN レス接続で渡される完全な接続文字列は、[ODBC] セクションのすべてのキーワード (予約済みおよびドライバー固有) の組み合わせです。

対象 解決方法については、
ファイル DSN への情報の書き込み SQLWriteFileDSN