現在の Recordset オブジェクトをクリアし、一連のコマンドを実行して得られた次のレコードセットを返します。
Set recordset = recordset.NextRecordset(RecordsAffected)
NextRecordset メソッドの構文には、次の指定項目があります。
指定項目 |
説明 |
recordset |
一連のコマンドに基づく Recordset オブジェクトを表すオブジェクト変数です。 |
RecordsAffected |
(省略可能) 長整数型 (Long) の変数です。プロバイダは、実行操作によって作用を受けたレコードの数をこの変数に返します。 |
NextRecordset メソッドは、複式のコマンド ステートメントにおける次のコマンドの結果、または多数の結果を返すストアド プロシージャでその結果を返すために使います。Execute メソッドまたは Open メソッドで、複式のコマンド ステートメント (たとえば、"SELECT * FROM table1;SELECT * FROM table2" など) に基づく Recordset オブジェクトを開く場合、ADO は最初のコマンドだけを実行して、その結果を recordset に返します。以降、順次 NextRecordset メソッドを呼び出すと、ステートメント内の対応するコマンドの結果が得られます。
2 回目以降の NextRecordset メソッド呼び出しでは、結果が得られるかぎり Recordset オブジェクトを返し続けます。列を返すコマンドがレコードを返さない場合、返される Recordset オブジェクトは空になります。これを調べるには、BOF プロパティと EOF プロパティがともに True になっているかどうかを確かめます。また、列を返さないコマンドが正しく実行された場合には、返される Recordset オブジェクトは閉じられます。これを確かめるには、recordset が Nothing ではないこと、および、EOF プロパティの呼び出しがエラーとなることを確かめます。返す結果がなくなった場合は、recordset に Nothing が設定されます。
即時更新モードでは、編集中に NextRecordset メソッドを呼び出すとエラーになります。このため、先に Update メソッドまたは CancelUpdate メソッドを呼び出してください。
複式のステートメントで複数のコマンドにパラメータを渡す必要がある場合に、Parameters コレクションを設定したり、あるいは元の Open 呼び出しまたは Execute 呼び出しで配列を渡したりするときには、コレクションまたは配列の中で指定するパラメータの順序が、対応する個々のコマンドの順序と同じである必要があります。また、出力パラメータは、すべての実行結果の読み取りを終えてから読み取る必要があります。
NextRecordset メソッドを呼び出すと、ADO はステートメントの次のコマンドだけを実行します。コマンド ステートメント全体が実行される前に明示的に Recordset オブジェクトを閉じた場合は、ADO は残りのコマンドを実行しません。