ISQLServerErrorInfo::GetErrorInfo (OLE DB)
SQL Server エラーの詳細を保持している SQL Server 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 Server Native Client OLE DB プロバイダが、要求を完了するために必要なメモリを割り当てることができませんでした。
説明
SQL Server 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 引数に返される文字列内のアドレスを指します。