ADO Recordset-Objekt

Beispiel

GetRows
Dieses Beispiel zeigt, wie das GetRows-Methoden verwendet wird.

Recordset-Objekt

Der ADO Recordset-Objekt wird verwendet, um eine Record-Sammlung aus einer Datenbanktabelle zu speichern. Ein Recordset-Objekt besteht aus Einträgen und Spalten (Feldern).

In ADO ist dieses Objekt das wichtigste und häufigste Objekt, das für die Datenbankoperationen verwendet wird.

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

Wenn Sie einen Recordset zum ersten Mal öffnen, weist der aktuelle Zeiger auf den ersten Eintrag hin, und die BOF- und EOF-Attribute sind auf False gesetzt. Wenn es keine Einträge gibt, sind die BOF- und EOF-Attribute auf True gesetzt.

Das Recordset-Objekt unterstützt zwei Update-Typen:

  • Sofortiges Update - Sobald der Update-Methodenaufruf erfolgt, werden alle Änderungen sofort in die Datenbank geschrieben.
  • Batch-Update - Der Provider cacht mehrere Änderungen und sendet diese dann über den UpdateBatch-Methoden an die Datenbank.

In ADO sind vier verschiedene Cursor-Typen (Zeiger) definiert:

  • Dynamischer Cursor - Ermöglicht das Anzeigen von Hinzufügungen, Änderungen und Löschungen anderer Benutzer
  • Satzcursor - Ähnlich wie ein dynamischer Cursor, können Sie jedoch keine Änderungen anderer Benutzer anzeigen, und er verhindert den Zugriff auf gelöschte Einträge anderer Benutzer. Änderungen an Daten durch andere Benutzer sind weiterhin sichtbar.
  • Statischer Cursor - Bietet eine statische Kopie des Recordsets, die zum Suchen von Daten oder zur Erstellung von Berichten verwendet werden kann. Darüber hinaus sind Ergänzungen, Änderungen und Löschungen durch andere Benutzer nicht sichtbar. Dies ist der einzige Cursor-Typ, der beim Öffnen eines Client Recordset-Objekts erlaubt ist.
  • Nur vorwärts laufender Cursor - Es ist nur das Vorwärtsrollen im Recordset erlaubt. Darüber hinaus sind Ergänzungen, Änderungen und Löschungen durch andere Benutzer nicht sichtbar. Statische Cursor - Bietet eine statische Kopie des Recordsets, die zum Suchen von Daten oder zur Erstellung von Berichten verwendet werden kann. Darüber hinaus sind Ergänzungen, Änderungen und Löschungen durch andere Benutzer nicht sichtbar. Dies ist der einzige Cursor-Typ, der beim Öffnen eines Client Recordset-Objekts erlaubt ist.

Der Cursor-Typ kann über das CursorType-Attribut oder den CursorType-Parameter im Open-Verfahren festgelegt werden.

Anmerkung:Nicht alle Anbieter (providers) unterstützen alle Methoden und Eigenschaften des Recordset-Objekts.

Eigenschaft

Eigenschaft Beschreibung
AbsolutePage Setzen oder Rückgabe eines Wertes, der die Seite im Recordset-Objekt angibt.
AbsolutePosition Setzen oder Rückgabe eines Wertes, der die aktuelle Reihenfolge des aktuellen Datensatzes im Recordset-Objekt angibt (Nummerierte Position).
ActiveCommand Rückgabe des Command-Objekts, das mit dem Recordset-Objekt verbunden ist.
ActiveConnection Setzen oder Rückgabe der Definition der Verbindung, wenn die Verbindung geschlossen ist, oder des aktuellen Connection-Objekts, wenn die Verbindung geöffnet ist.
BOF Rückgabe von true, wenn die aktuelle Datensatzposition vor dem ersten Datensatz ist, sonst wird false zurückgegeben.
Bookmark Setzen oder Rückgabe eines Bookmarks. Dieses Bookmark speichert die Position des aktuellen Datensatzes.
CacheSize Setzen oder Rückgabe der Anzahl der Datensätze, die zwischengespeichert werden können.
CursorLocation Setzen oder Rückgabe des Standorts des Cursor-Dienstes.
CursorType Setzen oder Rückgabe des Cursor-Typs eines Recordset-Objekts.
DataMember Setzen oder Rückgabe des Namens des Datenmitglieds, das aus dem auf den DataSource-Attribut verwiesenen Objekt abgerufen werden soll.
DataSource Spezifizieren eines Objekts, das Daten enthält, die als Recordset-Objekt dargestellt werden sollen.
EditMode Rückgabe des Bearbeitungsstatus des aktuellen Datensatzes.
EOF Rückgabe von true, wenn die Position des aktuellen Datensatzes nach dem letzten Datensatz ist, sonst wird false zurückgegeben.
Filter Rückgabe eines Filters für die Daten des Recordset-Objekts.
Index Setzen oder Rückgabe des Namens des aktuellen Index des Recordset-Objekts.
LockType Setzen oder Rückgabe eines Wertes, der den Lock-Typ angibt, der beim Bearbeiten eines Datensatzes im Recordset festgelegt werden kann.
MarshalOptions Setzen oder Rückgabe eines Wertes, der angibt, welche Datensätze an den Server zurückgegeben werden.
MaxRecords Stellen Sie fest oder geben Sie an, die maximale Anzahl von Records, die aus einer Abfrage in ein Recordset-Objekt zurückgegeben werden.
PageCount Geben Sie die Anzahl der Datenseiten in einem Recordset-Objekt zurück.
PageSize Stellen Sie fest oder geben Sie an, die maximale Anzahl von Records auf einer einzigen Seite des Recordset-Objekts.
RecordCount Geben Sie die Anzahl der Records in einem Recordset-Objekt zurück.
Sort Stellen Sie fest oder geben Sie an, einen oder mehrere Feldnamen, die als Sortierbasis für das Recordset dienen.
Source Setzen Sie einen Stringwert oder eine Referenz auf ein Command-Objekt, oder geben Sie einen String zurück, der angibt, woher das Recordset-Objekt seine Daten bekommt.
State Geben Sie einen Wert zurück, der angibt, ob das Recordset-Objekt geöffnet, geschlossen, verbindet, ausführt oder Daten abruft.
Status Geben Sie den aktuellen Status des Records für eine Batch-Update oder andere massiven Operationen zurück.
StayInSync Stellen Sie fest oder geben Sie an, ob die Referenz auf die Kindrecords geändert wird, wenn sich die Position des Elternteilrecords ändert.

Methode

Methode Beschreibung
AddNew Erstellen Sie ein neues Record.
Cancel Holen Sie eine Ausführung zurück.
CancelBatch Holen Sie eine Batch-Update-Aktion zurück.
CancelUpdate Holen Sie die Änderungen an einem Record des Recordset-Objekts zurück.
Clone Erstellen Sie eine Kopie eines bestehenden Recordsets.
Close Schließen Sie ein Recordset.
CompareBookmarks Vergleichen Sie zwei Bookmarks.
Delete Löschen Sie ein Record oder eine Gruppe von Records.
Find Suchen Sie ein Record, das eine bestimmte Bedingung erfüllt.
GetRows Kopieren Sie mehrere Records von einem Recordset-Objekt in ein zweidimensionales Array.
GetString Geben Sie den Recordset als String zurück.
Move Bewegen Sie den Zeiger im Recordset-Objekt.
MoveFirst Bewegen Sie den Zeiger auf das erste Record.
MoveLast Bewegen Sie den Zeiger auf das letzte Record.
MoveNext Bewegen Sie den Zeiger auf das nächste Record.
MovePrevious Bewegen Sie den Zeiger auf das vorherige Record.
NextRecordset Bereinigen Sie durch Ausführen einer Reihe von Befehlen den aktuellen Recordset-Objekt und kehren Sie zum nächsten Recordset zurück.
Öffnen Öffnen Sie ein Datenbankelement, das den Zugriff auf die Tabellenzeilen, die Abfrageergebnisse oder gespeicherte Recordsets ermöglicht.
Requery Aktualisiert die Daten im Recordset, indem die auf dem Objekt basierende Abfrage neu ausgeführt wird.
Resync Aktualisiert die Daten im aktuellen Recordset, indem sie aus der ursprünglichen Datenbank neu laden.
Save Speichert das Recordset-Objekt in ein file oder Stream-Objekt.
Seek Durchsucht den Index des Recordset, um schnell Zeilen zu finden, die mit dem angegebenen Wert übereinstimmen, und macht diese zur aktuellen Zeile.
Supports Gibt einen Boolean-Wert zurück, der definiert, ob das Recordset-Objekt bestimmte Funktionen unterstützt.
Update Speichert alle Änderungen an einem einzelnen Record im Recordset-Objekt.
UpdateBatch Speichert alle Änderungen an Recordset in die Datenbank. Verwenden Sie dies im Batch-Update-Modus.

Ereignis

Hinweis: Ereignisse können nicht mit VBScript oder JScript behandelt werden (nur die Sprachen Visual Basic, Visual C++ und Visual J++ können Ereignisse behandeln).

Ereignis Beschreibung
EndOfRecordset Wird ausgelöst, wenn versucht wird, auf eine Zeile zu bewegen, die über dem Ende des Recordset liegt.
FetchComplete Wird ausgelöst, wenn alle Records in der asynchronen Operation gelesen wurden.
FetchProgress Wird regelmäßig während der asynchronen Operation ausgelöst, um zu berichten, wie viele Records gelesen wurden.
FieldChangeComplete Wird ausgelöst, wenn der Wert eines Field-Objekts geändert wird.
MoveComplete Wird ausgelöst, nachdem die aktuelle Position im Recordset geändert wurde.
RecordChangeComplete Wird ausgelöst, nachdem ein Record geändert wurde.
RecordsetChangeComplete Wird ausgelöst, nachdem der Recordset geändert wurde.
WillChangeField Wird ausgelöst, bevor der Wert eines Field-Objekts geändert wird.
WillChangeRecord Wird ausgelöst, bevor ein Record geändert wird.
WillChangeRecordset Wird ausgelöst, bevor der Recordset geändert wird.
WillMove Wird ausgelöst, bevor der aktuelle Position im Recordset geändert wird.

Sammlung

Sammlung Beschreibung
Fields Zeigt die Anzahl der Field-Objekte in diesem Recordset-Objekt an.
Properties Enthält alle Property-Objekte in allen Recordset-Objekten.

Eigenschaften der Fields-Kollektion

Eigenschaft Beschreibung
Count

Rückgabe der Anzahl der Elemente in der fields-Kollektion. Beginnt bei 0.

Beispiel:

	countfields = rs.Fields.Count
	
Item(named_item/number)

Rückgabe eines bestimmten Elements der fields-Kollektion.

Beispiel:

	itemfields = rs.Fields.Item(1)
	oder	
	itemfields = rs.Fields.Item("Name")
	

Eigenschaften der Properties-Kollektion

Eigenschaft Beschreibung
Count

Rückgabe der Anzahl der Elemente in der properties-Kollektion. Beginnt bei 0.

Beispiel:

	countprop = rs.Properties.Count
	
Item(named_item/number)

Rückgabe eines bestimmten Elements der properties-Kollektion.

Beispiel:

	itemprop = rs.Properties.Item(1)
	oder
	itemprop = rs.Properties.Item("Name")