現在の Recordset オブジェクトをクリアし、一連のコマンドを実行して次の Recordset を返します。
構文
Set recordset2 = recordset1.NextRecordset(RecordsAffected )
戻り値
Recordset オブジェクトを返します。 構文モデルでは、 recordset1 と recordset2 を同じ Recordset オブジェクトにすることも、個別のオブジェクトを使用することもできます。 個別の Recordset オブジェクトを使用する場合、NextRecordset が呼び出された後に元の Recordset (recordset1) の ActiveConnection プロパティをリセットすると、エラーが生成されます。
パラメーター
RecordsAffected
任意。 プロバイダーが現在の操作が影響を受けたレコードの数を返す Long 変数。
注
このパラメーターは、操作の影響を受けるレコードの数のみを返します。 レコードセットの生成に使用される select ステートメントからレコードの数は返されません。
注釈
NextRecordset メソッドを使用して、複合コマンド ステートメントまたは複数の結果を返すストアド プロシージャの次のコマンドの結果を返します。 複合コマンド ステートメントに基づいて Recordset オブジェクトを開く場合 (例: "SELECT * FROM table1;SELECT * FROM table2") は、Command の Execute メソッドまたは Recordset の Open メソッドを使用して、ADO は最初のコマンドのみを実行し、結果をレコードセットに返します。 ステートメント内の後続のコマンドの結果にアクセスするには、 NextRecordset メソッドを呼び出します。
追加の結果があり、複合ステートメントを含む Recordset がプロセス境界を越えて切断またはマーシャリングされない限り、 NextRecordset メソッドは Recordset オブジェクトを返し続けます。 行を返すコマンドが正常に実行され、レコードが返されない場合、返される Recordset オブジェクトは開きますが、空になります。 BOF プロパティと EOF プロパティの両方が True であることを確認して、このケースをテストします。 行を返す以外のコマンドが正常に実行された場合、返された Recordset オブジェクトは閉じられ、Recordset の State プロパティをテストして確認できます。 これ以上結果がない場合、 レコードセット は Nothing に設定されます。
NextRecordset メソッドは、切断された Recordset オブジェクトでは使用できません。ActiveConnection が Nothing (Microsoft Visual Basic の場合) または NULL (他の言語) に設定されています。
即時更新モードの間に編集が進行中の場合、 NextRecordset メソッドを呼び出すとエラーが発生します。最初に Update メソッドまたは CancelUpdate メソッドを呼び出します。
Parameters コレクションを入力するか、元の Open 呼び出しまたは Execute 呼び出しで配列を渡すことによって、複合ステートメント内の複数のコマンドのパラメーターを渡すには、パラメーターは、コレクションまたは配列内のコマンド シリーズのそれぞれのコマンドと同じ順序である必要があります。 出力パラメーター値を読み取る前に、すべての結果の読み取りを完了する必要があります。
OLE DB プロバイダーは、複合ステートメント内の各コマンドが実行されるタイミングを決定します。 たとえば、 Microsoft OLE DB Provider for SQL Server では、複合ステートメントを受け取ると、すべてのコマンドがバッチで実行されます。 結果の レコードセット は、 NextRecordset を呼び出すと単純に返されます。
ただし、他のプロバイダーは、NextRecordset が呼び出された後にのみ、ステートメントで次のコマンドを実行できます。 これらのプロバイダーの場合、コマンド ステートメント全体をステップ実行する前に Recordset オブジェクトを明示的に閉じると、ADO は残りのコマンドを実行しません。