SQLGetInstalledDrivers 関数

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

まとめ
SQLGetInstalledDrivers は 、システム情報の [ODBC ドライバー] セクションを読み取り、インストールされているドライバーの説明の一覧を返します。

構文

  
BOOL SQLGetInstalledDrivers(  
     LPSTR   lpszBuf,  
     WORD    cbBufMax,  
     WORD *  pcbBufOut);  

引数

lpszBuf
[出力]インストールされているドライバーの説明の一覧。 リスト構造の詳細については、「コメント」を参照してください。

cbBufMax
[入力] lpszBuf の長さ。

pcbBufOut
[出力] lpszBuf で返される合計バイト数 (null 終了バイトを除く)。 返される使用可能なバイト数が cbBufMax 以上の場合、 lpszBuf 内のドライバー記述の一覧は cbBufMax から null 終端文字を引いた値に切り捨てられます。 pcbBufOut 引数には null ポインターを指定できます。

戻り値

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

診断

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

*pfErrorCode エラー 説明
ODBC_ERROR_GENERAL_ERR 一般的なインストーラー エラー 特定のインストーラー エラーがないエラーが発生しました。
ODBC_ERROR_INVALID_BUFF_LEN バッファーの長さが無効です lpszBuf 引数が NULL または無効であるか、cbBufMax 引数が 0 以下でした。
ODBC_ERROR_COMPONENT_NOT_FOUND レジストリにコンポーネントが見つかりません インストーラーでレジストリの [ODBC ドライバー] セクションが見つかりませんでした。
ODBC_ERROR_OUT_OF_MEM メモリ不足 メモリ不足のため、インストーラーで関数を実行できませんでした。

説明

各ドライバーの説明は null バイトで終了し、リスト全体が null バイトで終了します。 (つまり、2 つの null バイトがリストの末尾をマークします)。割り当てられたバッファーがリスト全体を保持するのに十分な大きさでない場合、リストはエラーなしで切り捨てられます。 null ポインターが lpszBuf として渡されると、エラーが返されます。

対象 解決方法については、
ドライバーの説明と属性を返す SQLDrivers