NextRecordset メソッド

       

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

構文

Set recordset2 = recordset1.NextRecordset(RecordsAffected )

戻り値

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

パラメータ

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

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

解説

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

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

RDS での使用   クライアント側Recordset オブジェクトでは、NextRecordset メソッドは使用できません。

即時更新モードで編集を行っているときに NextRecordset メソッドを呼び出すと、エラーが発生します。この場合は、最初に Update メソッドまたは CancelUpdate メソッドを呼び出してください。

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

NextRecordset メソッドを呼び出すと、ステートメントの次のコマンドのみが実行されます。ステートメントのすべてのコマンドを実行する前に Recordset オブジェクトを明示的に閉じると、残りのコマンドは実行されません。