ストアド プロシージャの実行 (OLE DB)
ステートメントの実行時、データ ソースに対して (クライアント アプリケーション内でステートメントを直接実行または準備せずに) ストアド プロシージャを呼び出すと、次のような利点があります。
- パフォーマンスの向上
- ネットワーク オーバーヘッドの軽減
- 一貫性の向上
- 正確性の向上
- 機能の追加
SQL Native Client OLE DB プロバイダでは、SQL Server ストアド プロシージャがデータを返す場合に使用する、次の 3 つのメカニズムがサポートされます。
- プロシージャ内のすべての SELECT ステートメントで結果セットを生成する。
- プロシージャが出力パラメータによってデータを返すことができる。
- プロシージャに整数のリターン コードを含めることができる。
アプリケーションでは、ストアド プロシージャからのこれらすべての出力を処理できる必要があります。
結果の処理中には、さまざまな OLE DB プロバイダからさまざまなタイミングで出力パラメータと戻り値が返されます。SQL Native Client OLE DB プロバイダの場合、出力パラメータとリターン コードは、コンシューマがストアド プロシージャから返された結果セットを取得またはキャンセルするまで提供されません。これらのリターン コードと出力パラメータは、サーバーからの最後の TDS パケットで返されます。
プロバイダでは、DBPROP_OUTPUTPARAMETERAVAILABILITY プロパティを使用して、出力パラメータと戻り値を返すタイミングを報告します。このプロパティは、DBPROPSET_DATASOURCEINFO プロパティ セットに含まれています。
SQL Native Client OLE DB プロバイダでは、DBPROP_OUTPUTPARAMETERAVAILABILITY プロパティを DBPROPVAL_OA_ATROWRELEASE に設定することにより、結果セットが処理または解放されるまでリターン コードと出力パラメータが返されないことを示します。