次の方法で共有


ISQLServerErrorInfo::GetErrorInfo (OLE DB)

SQL Server エラーの詳細を保持している SQL Native Client OLE DB プロバイダの SSERRORINFO 構造体へのポインタを返します。

構文

HRESULT GetErrorInfo(
   SSERRORINFO**ppSSErrorInfo,
   OLECHAR**ppErrorStrings);

引数

  • ppSSErrorInfo[out]
    SSERRORINFO 構造体へのポインタ。メソッドが失敗するか、エラーに関連する SQL Server 情報がない場合、プロバイダはメモリの割り当てを行わず、出力時に ppSSErrorInfo 引数に NULL ポインタを設定します。
  • ppErrorStrings[out]
    Unicode 文字列ポインタへのポインタ。メソッドが失敗するか、エラーに関連する SQL Server 情報がない場合、プロバイダはメモリの割り当てを行わず、出力時に ppErrorStrings 引数に NULL ポインタを設定します。IMalloc::Free メソッドを使用して ppErrorStrings 引数を解放すると、メモリがブロック単位で割り当てられているので、結果の SSERRORINFO 構造体の 3 つの各文字列メンバが解放されます。

リターン コード値

  • S_OK
    メソッドが成功しました。
  • E_INVALIDARG
    ppSSErrorInfo または ppErrorStrings 引数のいずれかが NULL でした。
  • E_OUTOFMEMORY
    SQL Native Client OLE DB プロバイダが、要求を完了するために必要なメモリを割り当てられませんでした。

解説

SQL Native Client OLE DB プロバイダは、コンシューマが渡したポインタを使用して返される、SSERRORINFO 文字列と OLECHAR 文字列用にメモリを割り当てます。コンシューマはエラー データにアクセスする必要がなくなった時点で、IMalloc::Free メソッドを使用してこのメモリの割り当てを解除する必要があります。

SSERRORINFO 構造体は、次のように定義されています。

typedef struct tagSSErrorInfo
   {
   LPOLESTR pwszMessage;
   LPOLESTR pwszServer;
   LPOLESTR pwszProcedure;
   LONG lNative;
   BYTE bState;
   BYTE bClass;
   WORD wLineNumber;
   }
SSERRORINFO;
メンバ 説明

pwszMessage

SQL Server のエラー メッセージ。このメッセージは、IErrorInfo::GetDescription メソッドにより返されます。

pwszServer

エラーが発生した SQL Server インスタンスの名前。

pwszProcedure

エラーがストアド プロシージャ内で発生している場合は、エラーが発生したストアド プロシージャの名前です。それ以外の場合は、空文字列になります。

lNative

SQL Server のエラー番号。このエラー番号は、ISQLErrorInfo::GetSQLInfo メソッドの plNativeError パラメータに返されるものと同じになります。

bState

SQL Server エラーの状態。

bClass

SQL Server エラーの重大度。

wLineNumber

該当する場合は、SQL Server ストアド プロシージャのエラー メッセージを生成した行です。プロシージャが関係していない場合は、既定値 1 が使用されます。

構造体内のポインタは、ppErrorStrings 引数に返される文字列内のアドレスを指します。

参照

その他の技術情報

ISQLServerErrorInfo (OLE DB)
RAISERROR (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手