Recordset-Objekt (ADO)
Stellt den gesamten Datensatzsatz aus einer Basistabelle oder den Ergebnissen eines ausgeführten Befehls dar. Zu jedem Zeitpunkt bezieht sich das Recordset -Objekt nur auf einen einzelnen Datensatz innerhalb des Satzes als aktueller Datensatz.
Bemerkungen
Sie verwenden Recordset Objekte, um Daten von einem Anbieter zu bearbeiten. Wenn Sie ADO verwenden, bearbeiten Sie Daten fast vollständig mit Recordset--Objekten. Alle Recordset- Objekte bestehen aus Datensätzen (Zeilen) und Feldern (Spalten). Abhängig von der vom Anbieter unterstützten Funktionalität sind einige Recordset- Methoden oder Eigenschaften möglicherweise nicht verfügbar.
ADODB. Recordset ist die ProgID, die zum Erstellen eines Recordset--Objekts verwendet werden soll. Vorhandene Anwendungen, die auf den veralteten ADOR verweisen. Recordset ProgID funktioniert weiterhin ohne erneute Kompilierung, aber die neue Entwicklung sollte auf ADODB verweisen. Recordset.
In ADO sind vier verschiedene Cursortypen definiert:
Dynamischer Cursor Ermöglicht es Ihnen, Ergänzungen, Änderungen und Löschungen von anderen Benutzern anzuzeigen; ermöglicht alle Arten von Bewegungen durch das Recordset-, das nicht auf Lesezeichen angewiesen ist; und ermöglicht Lesezeichen, wenn der Anbieter sie unterstützt.
Keysetcursor verhält sich wie ein dynamischer Cursor, es sei denn, sie verhindert, dass Datensätze angezeigt werden, die andere Benutzer hinzufügen, und verhindert den Zugriff auf Datensätze, die andere Benutzer löschen. Datenänderungen von anderen Benutzern werden weiterhin angezeigt. Es unterstützt immer Lesezeichen und ermöglicht daher alle Arten von Bewegungen durch das Recordset-.
statische Cursor- Stellt eine statische Kopie einer Datensatzgruppe bereit, mit der Sie Daten suchen oder Berichte generieren können; ermöglicht immer Lesezeichen und ermöglicht daher alle Arten von Bewegungen durch das Recordset-. Ergänzungen, Änderungen oder Löschungen anderer Benutzer sind nicht sichtbar. Dies ist der einzige Cursortyp, der beim Öffnen eines clientseitigen Recordset-Objekts zulässig ist.
Vorwärtscursor- Ermöglicht es Ihnen, nur durch das Recordset-vorwärts zu scrollen. Ergänzungen, Änderungen oder Löschungen anderer Benutzer sind nicht sichtbar. Dies verbessert die Leistung in Situationen, in denen Sie nur einen einzelnen Durchlauf eines Recordset-vornehmen müssen.
Legen Sie die CursorType- eigenschaft vor dem Öffnen des Recordset- fest, um den Cursortyp auszuwählen, oder übergeben Sie ein CursorType Argument mit der Open-Methode. Einige Anbieter unterstützen nicht alle Cursortypen. Überprüfen Sie die Dokumentation für den Anbieter. Wenn Sie keinen Cursortyp angeben, öffnet ADO standardmäßig einen Vorwärtscursor.
Wenn die eigenschaft CursorLocation auf adUseClient festgelegt ist, um ein Recordsetzu öffnen, ist die UnderlyingValue-Eigenschaft für Field-Objekte im zurückgegebenen Recordset-Objekt nicht verfügbar. Bei Verwendung mit einigen Anbietern (z. B. dem Microsoft ODBC-Anbieter für OLE DB in Verbindung mit Microsoft SQL Server) können Sie Recordset Objekte unabhängig von einem zuvor definierten Connection-Objekt erstellen, indem Sie eine Verbindungszeichenfolge mit der Open-Methode übergeben. ADO erstellt weiterhin ein Connection-Objekt, weist dieses Objekt jedoch keiner Objektvariable zu. Wenn Sie jedoch mehrere Recordset- Objekte über dieselbe Verbindung öffnen, sollten Sie explizit ein Connection-Objekt erstellen und öffnen; dadurch wird das Connection -Objekts einer Objektvariable zugewiesen. Wenn Sie diese Objektvariable beim Öffnen des Recordset-Objekte nicht verwenden, erstellt ADO ein neues Connection-Objekt für jedes neue Recordset-, auch wenn Sie dieselbe Verbindungszeichenfolge übergeben.
Sie können beliebig viele Recordset- Objekte erstellen.
Wenn Sie ein Recordset-öffnen, wird der aktuelle Datensatz zum ersten Datensatz (sofern vorhanden) positioniert, und die BOF- und EOF- Eigenschaften werden auf Falsefestgelegt. Wenn keine Datensätze vorhanden sind, sind die BOF- und EOF Eigenschafteneinstellungen True.
Sie können die Methoden MoveFirst, MoveLast, MoveNext-und MovePrevious- verwenden; die Move-Methode; und die AbsolutePosition, AbsolutePage-und Filter Eigenschaften, um den aktuellen Datensatz neu zu positionieren, vorausgesetzt, der Anbieter unterstützt die relevante Funktionalität. Forward-only-Recordset--Objekte unterstützen nur die MoveNext-Methode. Wenn Sie die Move Methoden verwenden, um jeden Datensatz zu besuchen (oder das Recordsetaufzulisten), können Sie die BOF- und EOF--Eigenschaften verwenden, um festzustellen, ob Sie über den Anfang oder das Ende des Recordsetverschoben haben.
Bevor Sie eine Funktionalität eines Recordset--Objekts verwenden, müssen Sie die Supports-Methode für das Objekt aufrufen, um sicherzustellen, dass die Funktionalität unterstützt oder verfügbar ist. Sie dürfen die Funktionalität nicht verwenden, wenn die Supports-Methode "false" zurückgibt. Beispielsweise können Sie die MovePrevious--Methode nur verwenden, wenn Recordset.Supports(adMovePrevious)
Truezurückgibt. Andernfalls wird ein Fehler angezeigt, da das Recordset-Objekt möglicherweise geschlossen wurde und die Funktionalität in der Instanz nicht verfügbar ist. Wenn ein Feature, an dem Sie interessiert sind, nicht unterstützt wird, gibt Supports ebenfalls "false" zurück. In diesem Fall sollten Sie vermeiden, die entsprechende Eigenschaft oder Methode für das Recordset-Objekt aufzurufen.
Recordset--Objekte können zwei Arten von Aktualisierungen unterstützen: sofort und batchweise. Beim sofortigen Aktualisieren werden alle Änderungen an Daten sofort in die zugrunde liegende Datenquelle geschrieben, sobald Sie die Update-Methode aufrufen. Sie können auch Arrays von Werten als Parameter mit dem AddNew und Update Methoden übergeben und gleichzeitig mehrere Felder in einem Datensatz aktualisieren.
Wenn ein Anbieter die Batchaktualisierung unterstützt, können Sie änderungen des Anbieters an mehreren Datensätzen zwischenspeichern lassen und diese dann in einem einzigen Aufruf an die Datenbank mit der UpdateBatch--Methode übertragen. Dies gilt für Änderungen, die mit den Methoden AddNew, Updateund Delete vorgenommen wurden. Nachdem Sie die UpdateBatch--Methode aufgerufen haben, können Sie die eigenschaft Status verwenden, um nach Datenkonflikten zu suchen, um sie zu beheben.
Anmerkung
Um eine Abfrage auszuführen, ohne ein Command-Objekt zu verwenden, übergeben Sie eine Abfragezeichenfolge an die Open-Methode eines Recordset-Objekts. Ein Command-Objekt ist jedoch erforderlich, wenn Sie den Befehlstext beibehalten und erneut ausführen oder Abfrageparameter verwenden möchten.
Die Mode-Eigenschaft steuert Zugriffsberechtigungen.
Die Fields -Auflistung ist das Standardelement des Recordset -Objekts. Daher sind die folgenden beiden Codeanweisungen gleichwertig.
Debug.Print objRs.Fields.Item(0) ' Both statements print
Debug.Print objRs(0) ' the Value of Item(0).
Wenn ein Recordset--Objekt über Prozesse hinweg übergeben wird, werden nur die Rowset- Werte ge marshallt, und die Eigenschaften des Recordset--Objekts werden ignoriert. Während der Entmarsung wird das Rowset- in ein neu erstelltes Recordset--Objekt entpackt, das seine Eigenschaften auch auf die Standardwerte festlegt.
Das Recordset--Objekt ist für Skripts sicher.
Dieser Abschnitt enthält das folgende Thema.
Siehe auch
Connection-Objekt (ADO)
Fields-Auflistung (ADO)
Properties-Auflistung (ADO)
Anhang A: Anbieter