次の方法で共有


NextRecordset メソッド (ADO)

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

構文

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

戻り値

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

パラメーター

RecordsAffected
任意。 プロバイダーが現在の操作が影響を受けたレコードの数を返す Long 変数。

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

注釈

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

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

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

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

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

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

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

適用対象

Recordset オブジェクト (ADO)

こちらもご覧ください

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