リターン コード
最も基本的なレベルでは、メンバ関数は成功するか失敗するかのどちらかです。それよりもやや詳細なレベルでは、関数は成功しても、その成功はアプリケーション開発者が意図した状態ではない場合があります。
OLE DB のリターン コードに関する詳細については、「リターン コード (OLE DB)」を参照してください。
SQL Server Native Client OLE DB プロバイダのメンバ関数が S_OK を返したときは、その関数は成功しています。
SQL Server Native Client OLE DB プロバイダのメンバ関数が S_OK を返さない場合は、OLE/COM HRESULT をアンパックする FAILED マクロと IS_ERROR マクロにより、関数全体が成功したか失敗したかを判断できます。
FAILED または IS_ERROR が TRUE を返した場合、SQL Server Native Client OLE DB プロバイダのコンシューマは、メンバ関数の実行が失敗したことを確認できます。FAILED または IS_ERROR が FALSE を返し、HRESULT が S_OK ではない場合、SQL Server Native Client OLE DB プロバイダのコンシューマは、部分的に関数が成功していることを確認できます。コンシューマは、SQL Server Native Client OLE DB プロバイダのエラー インターフェイスから返される、関数の成功に関する詳細情報を取得できます。また、関数が明らかに失敗している (FAILED マクロが TRUE を返した) 場合、SQL Server Native Client OLE DB プロバイダのエラー インターフェイスから拡張エラー情報を取得できます。
SQL Server Native Client OLE DB プロバイダのコンシューマは、HRESULT から返される、DB_S_ERRORSOCCURRED により成功が示される情報を取得する場合があります。通常、DB_S_ERRORSOCCURRED を返すメンバ関数では、コンシューマに状態値を提供するパラメータが 1 つ以上定義されています。コンシューマは状態値パラメータに返される情報以外のエラー情報を取得できない場合があるので、状態値が提供された場合にこの値を取得できるアプリケーション ロジックを実装することをお勧めします。
SQL Server Native Client OLE DB プロバイダのメンバ関数は、成功コード S_FALSE を返しません。SQL Server Native Client OLE DB プロバイダのメンバ関数は、成功を示す場合、常に S_OK を返します。