NextRecordset

(PWS4 IIS4 IIS5)
NextRecordset — 現在の Recordset オブジェクトをクリアし、一連のコマンド操作を実行して次の Recordset を返します。

構文

recordset1.NextRecordset( RecordsAffected )

パラメータ

recordset1
Recordset オブジェクを指定します。
RecordsAffected
省略可能です。長整数型 (Long) の変数を指定します。プロバイダは、操作の影響を受けたレコード数をここに返します。

戻り値

Recordset オブジェクトを返します。構文の recordset1 と recordset2 には、同じ Recordset オブジェクト、または別のオブジェクトを指定できます。別の Recordset オブジェクトを指定する場合、NextRecordset の呼び出し後に元の Recordset (recordset1) の ActiveConnection プロパティを再設定すると、エラーが発生します。

注意 このパラメータは、操作の影響を受けたレコード数のみを返します。Recordset を作成するために使用された Select ステートメントからのレコード数を返すことはありません。

説明

NextRecordset メソッドでは、複合コマンド ステートメントの次のコマンドの結果、または複数の結果を返すストアド プロシージャの結果を返します。Command オブジェクトで Execute メソッドを使用するか、または Recordset オブジェクトで Open メソッドを使用して、”SELECT * FROM table1;SELECT * FROM table2″ などの複合コマンド ステートメントに基づく Recordset オブジェクトを開いた場合、最初のコマンドのみが実行され、その結果が recordset に返されます。ステートメントの次のコマンドの結果にアクセスするには、NextRecordset メソッドを呼び出します。

残りの結果が存在し、複合ステートメントを含む Recordset が切断されているか、プロセスの境界を越えてマーシャリングされていない限り、NextRecordset メソッドは Recordset オブジェクトを返し続けます。行を返すコマンドが成功しても返すレコードがない場合、Recordset オブジェクトは空の状態で開かれます。これに該当するかどうかを調べるには、BOF と EOF のプロパティが両方とも True になっているかどうかを確認します。行を返さないコマンドが正しく実行された場合、返された Recordset オブジェクトは閉じています。この場合は、Recordset オブジェクトで State プロパティをテストして確認します。残りの結果が存在しない場合、recordset は Nothing に設定されます。

切断された Recordset オブジェクトでは、ActiveConnection が Nothing (Microsoft Visual Basic) または NULL (その他の言語) に設定されているため、NextRecordset メソッドは使用できません。

即時更新モードで編集を行っているときに NextRecordset メソッドを呼び出すとエラーが発生します。Update または CancelUpdate メソッドを先に呼び出す必要があります。

複合ステートメントの複数のコマンドにパラメータを渡すには、Parameters コレクションを使用するか、または元の Open メソッドまたは Execute メソッドの呼び出しで配列を渡します。この場合、コレクションまたは配列のパラメータの並び順は、一連のコマンドの並び順と同じでなければなりません。出力パラメータの値を読み込むには、すべての結果の読み込みが終了している必要があります。

複合ステートメント内のコマンドをいつ実行するかは、OLE DB プロバイダが決定します。たとえば、Microsoft OLE DB Provider for SQL Server は、複合ステートメントを受け取ったときにすべてのコマンドをバッチで実行します。結果の Recordset は、NextRecordset を呼び出したときに返されます。

ただし、それ以外のプロバイダでは、ステートメント内の次のコマンドが NextRecordset の呼び出しの後にしか実行されないこともあります。そのようなプロバイダの場合、ステートメントのすべてのコマンドを実行する前に Recordset オブジェクトを明示的に閉じると、残りのコマンドは実行されません。