NextRecordset メソッド (ADO)

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

構文

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

戻り値

Recordset オブジェクトを返します。 構文モデルでは、recordset1recordset2 を同じ Recordset オブジェクトにすることも、個別のオブジェクトを使用することもできます。 個別の Recordset オブジェクトを使用する場合、NextRecordset が呼び出された後に元の Recordset (recordset1) で ActiveConnection プロパティをリセットすると、エラーが生成されます。

パラメーター

RecordsAffected
省略可能。 現在の操作で影響を受けたレコードの数をプロバイダーによって返される Long 変数。

注意

このパラメーターでは、操作の影響を受けたレコードの数のみが返されます。Recordset の生成に使用された select ステートメントからのレコードの数は返されません。

注釈

NextRecordset メソッドを使用すると、複合コマンド ステートメントの次のコマンドまたは複数の結果を返すストアド プロシージャが返されます。 CommandExecute メソッドまたは、RecordsetOpen メソッドを使用して、複合コマンド ステートメント (たとえば、"SELECT * FROM table1;SELECT * FROM table2") に基づく Recordset オブジェクトを開くと 、ADO では最初のコマンドのみが実行され、結果は "レコードセット" に返されます。 ステートメント内の後続のコマンドの結果にアクセスするには、NextRecordset メソッドを呼び出します。

追加の結果があり、複合ステートメントを含む Recordset がプロセス境界間で切断またはマーシャリングされない限り、NextRecordset メソッドでは Recordset オブジェクトが返され続けます。 行を返すコマンドが正常に実行されてもレコードが返されない場合、返される Recordset オブジェクトは開きますが、空です。 BOF および EOF プロパティの両方が True であることを確認して、このケースをテストします。 行を返す以外のコマンドが正常に実行された場合、返された Recordset オブジェクトは閉じられ、RecordsetState プロパティをテストして確認できます。 他に結果がない場合、"レコードセット" は Nothing に設定されます。

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

即時更新モードの間に編集が進行中の場合、NextRecordset メソッドを呼び出すとエラーが生成されます。最初に Update または CancelUpdate メソッドを呼び出してください。

Parameters コレクションを入力するか、元の Open または Execute 呼び出しで配列を渡すことで、複合ステートメント内の複数のコマンドのパラメーターを渡すには、パラメーターは、コレクションまたは配列内でコマンド シリーズのそれぞれのコマンドと同じ順序である必要があります。 出力パラメーター値を読み取る前に、すべての結果の読み取りを完了する必要があります。

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

ただし、他のプロバイダーでは、NextRecordset が呼び出された後にのみステートメントで次のコマンドが実行される場合もあります。 これらのプロバイダーの場合、コマンド ステートメント全体をステップ実行する前に Recordset オブジェクトを明示的に閉じると、ADO で残りのコマンドが実行されることはありません。

適用対象

Recordset オブジェクト (ADO)

参照

NextRecordset メソッドの例 (VB)
NextRecordset メソッドの例 (VC++)