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