Freigeben über


NextRecordset-Methode (ADO)

Löscht das aktuelle Recordset -Objekt und gibt das nächste Recordset- zurück, indem er durch eine Reihe von Befehlen voranschreitet.

Syntax

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

Rückgabewert

Gibt ein Recordset -Objekt zurück. Im Syntaxmodell können Recordset1- und Recordset2- dasselbe Recordset-Objekt sein, oder Sie können separate Objekte verwenden. Wenn Sie separate Recordset--Objekte verwenden, wird beim Zurücksetzen der ActiveConnection-Eigenschaft des ursprünglichen Recordset- (Recordset1) nach dem Aufruf NextRecordset- ein Fehler generiert.

Parameter

RecordsAffected
Wahlfrei. Eine Long Variable, an die der Anbieter die Anzahl der Datensätze zurückgibt, die der aktuelle Vorgang betroffen hat.

Anmerkung

Dieser Parameter gibt nur die Anzahl der Datensätze zurück, die von einem Vorgang betroffen sind; es gibt keine Anzahl von Datensätzen aus einer Select-Anweisung zurück, die zum Generieren des Recordset-verwendet wird.

Bemerkungen

Verwenden Sie die NextRecordset- Methode, um die Ergebnisse des nächsten Befehls in einer zusammengesetzten Befehlsaufweisung oder einer gespeicherten Prozedur zurückzugeben, die mehrere Ergebnisse zurückgibt. Wenn Sie ein Recordset-Objekt öffnen, das auf einer zusammengesetzten Befehls anweisung basiert (z. B. "SELECT * FROM table1; SELECT * FROM table2") mit der Execute-Methode für ein Command oder die Open-Methode für ein Recordset-ausgeführt wird, führt ADO nur den ersten Befehl aus und gibt die Ergebnisse an Recordset-zurück. Rufen Sie die NextRecordset-Methode auf, um auf die Ergebnisse der nachfolgenden Befehle in der Anweisung zuzugreifen.

Solange zusätzliche Ergebnisse vorliegen und das Recordset-, das die zusammengesetzten Anweisungen enthält, nicht getrennt oder über Prozessgrenzen hinweg gemarstet wird, gibt die NextRecordset--Methode weiterhin Recordset--Objekte zurück. Wenn ein Befehl mit Zeilenrückgabe erfolgreich ausgeführt wird, aber keine Datensätze zurückgibt, wird das zurückgegebene Recordset-Objekt-Objekt geöffnet, aber leer. Testen Sie diesen Fall, indem Sie überprüfen, ob die eigenschaften BOF und EOF beide Truesind. Wenn ein Befehl, der keine Zeile zurückgibt, erfolgreich ausgeführt wird, wird das zurückgegebene Recordset--Objekt geschlossen, das Sie überprüfen können, indem Sie die eigenschaft State auf dem Recordset-testen. Wenn keine weiteren Ergebnisse vorhanden sind, wird Recordset- auf Nothingfestgelegt.

Die NextRecordset--Methode ist für ein getrenntes Recordset--Objekt nicht verfügbar, wobei ActiveConnection- auf Nothing (in Microsoft Visual Basic) oder NULL (in anderen Sprachen) festgelegt wurde.

Wenn eine Bearbeitung während des sofortigen Aktualisierungsmodus ausgeführt wird, generiert das Aufrufen der NextRecordset--Methode einen Fehler; rufen Sie zuerst die methode Update oder CancelUpdate auf.

Um Parameter für mehrere Befehle in der Verbundanweisung zu übergeben, indem sie die Parameters -Auflistung ausfüllen oder ein Array mit dem ursprünglichen Open oder Execute Aufruf übergeben, müssen sich die Parameter in der Auflistung oder im Array in derselben Reihenfolge wie die entsprechenden Befehle in der Befehlsreihe befinden. Sie müssen alle Ergebnisse vor dem Lesen von Ausgabeparameterwerten beenden.

Ihr OLE DB-Anbieter bestimmt, wann jeder Befehl in einer zusammengesetzten Anweisung ausgeführt wird. Der Microsoft OLE DB-Anbieter für SQL Serverführt z. B. alle Befehle in einem Batch aus, wenn die Verbundanweisung empfangen wird. Die resultierenden Recordsets werden einfach zurückgegeben, wenn Sie NextRecordset-aufrufen.

Andere Anbieter können jedoch den nächsten Befehl in einer Anweisung nur ausführen, nachdem NextRecordset aufgerufen wurde. Wenn Sie das Recordset-Objekt explizit schließen, bevor Sie die gesamte Befehlsanweisung durchlaufen, führt ADO niemals die verbleibenden Befehle aus.

Gilt für

Recordset-Objekt (ADO)

Siehe auch

NextRecordset-Methode (Vb-Beispiel)
NextRecordset-Methode (Beispiel) (VC++)