Lassen Sie uns heute über einige Methoden des Recordset-Objekts sprechen.
1. Die AddNew-Methode erstellt neue Datensätze, die das Recordset-Objekt aktualisieren können.
Recordset.AddNew FieldList, Werte
FieldList Optional. Ein einzelner Name, eine Reihe von Namen oder die Ordnungsposition des Feldes im neuen Datensatz.
Werte sind optional. Ein einzelner oder eine Reihe von Werten für ein Feld im neuen Datensatz. Wenn Fields ein Array ist, muss Values auch ein Array mit derselben Anzahl von Mitgliedern sein, andernfalls tritt ein Fehler auf. Die Reihenfolge der Feldnamen muss mit der Reihenfolge der Feldwerte in jedem Array übereinstimmen.
Normalerweise sind wir es
rs.addnew
rs("xx")=xx
rs("xx")=xx
rs.update
Beachten Sie, dass im sofortigen Aktualisierungsmodus (der Anbieter schreibt Änderungen sofort in die zugrunde liegende Datenquelle, wenn die Update-Methode aufgerufen wird) der Aufruf der AddNew-Methode ohne Parameter die EditMode-Eigenschaft auf adEditAdd setzt. Der Anbieter speichert alle Änderungen an Feldwerten lokal zwischen. Rufen Sie die Update-Methode auf, um den neuen Datensatz an die Datenbank zu übergeben und die EditMode-Eigenschaft auf adEditNone zurückzusetzen. Wenn die Parameter „Fields“ und „Values“ übergeben werden, übergibt ADO den neuen Datensatz sofort an die Datenbank (ohne Update aufzurufen) und der Wert der EditMode-Eigenschaft ändert sich nicht (adEditNone).
Sie fragen sich vielleicht, was der Unterschied zwischen der Verwendung der AddNew-Methode von ADO in ASP und der direkten Verwendung der „Insert into…“-Anweisung ist? Welcher Weg ist besser? Antwort: Die AddNew-Methode von ADO kapselt nur die „Insert into“-Anweisung. Daher beschleunigt die direkte Verwendung von SQL-Anweisungen den Datenzugriff erheblich, da dadurch die „Übersetzungszeit“ von ADO verkürzt wird.
2. Die Löschmethode löscht den aktuellen Datensatz oder die aktuelle Datensatzgruppe.
Recordset.Delete AffectRecords
AffectRecords Der AffectEnum-Wert bestimmt die Anzahl der Datensätze, die von der Methode „Delete“ betroffen sind. Dieser Wert kann eine der folgenden Konstanten sein.
AdAffectCurrent-Standard. Nur den aktuellen Datensatz löschen.
AdAffectGroup löscht Datensätze, die der aktuellen Einstellung der Filtereigenschaft entsprechen. Um diese Option verwenden zu können, muss die Filtereigenschaft auf eine der gültigen vordefinierten Konstanten festgelegt sein.
adAffectAll löscht alle Datensätze.
adAffectAllChapters Alle Teilmengendatensätze löschen.
Die Verwendung des Modus „Sofortige Aktualisierung“ führt zu einer sofortigen Löschung in der Datenbank. Andernfalls wird der Datensatz zum Löschen aus dem Cache markiert und die tatsächliche Löschung erfolgt, wenn die Update-Methode aufgerufen wird.
3. Die Update-Methode speichert alle am aktuellen Datensatz des Recordset-Objekts vorgenommenen Änderungen.
Recordset.Felder und Werte aktualisieren
Felder sind optional. Variantentyp, der einen einzelnen Namen darstellt; oder Variantentyp-Array, das den Namen und die Seriennummerposition des Felds (eines oder mehrerer) darstellt, das geändert werden muss.
Werte sind optional. Variantentyp, der einen einzelnen Wert darstellt; oder Variantentyp-Array, das die Feldwerte (einzeln oder mehrere) im neuen Datensatz darstellt.
Wenn Sie am aktuellen Datensatz vorgenommene Änderungen abbrechen oder neu hinzugefügte Datensätze verwerfen möchten, müssen Sie die Methode „CancelUpdate“ aufrufen.
4. CancelUpdate-Methode
Recordset.CancelUpdate
Verwenden Sie die Methode „CancelUpdate“, um alle Änderungen am aktuellen Datensatz abzubrechen oder neu hinzugefügte Datensätze zu verwerfen. Änderungen am aktuellen Datensatz oder an neuen Datensätzen können nach dem Aufruf der Update-Methode nicht rückgängig gemacht werden. Wenn beim Aufruf der CancelUpdate-Methode ein neuer Datensatz hinzugefügt wird, wird der aktuelle Datensatz vor dem Aufruf von AddNew wieder zum aktuellen Datensatz. Wenn der aktuelle Datensatz nicht geändert wurde oder ein neuer Datensatz hinzugefügt wurde, erzeugt der Aufruf der Methode „CancelUpdate“ einen Fehler.
5. Die Find-Methode durchsucht das Recordset nach Datensätzen, die bestimmte Kriterien erfüllen. Wenn die Kriterien erfüllt sind, wird die Recordset-Position auf den gefundenen Datensatz festgelegt, andernfalls wird die Position am Ende des Recordsets festgelegt.
Suchen (Kriterien, SkipRows, Suchrichtung, Start)
Kriterien Eine Zeichenfolge mit Anweisungen, die Spaltennamen, Vergleichsoperatoren und Werte für die Suche angeben.
SkipRows Optionaler langer ganzzahliger Wert, dessen Standardwert Null ist und den Offset der aktuellen Zeile oder des Startlesezeichens zum Starten der Suche angibt.
searchDirection Optionaler SearchDirectionEnum-Wert, der angibt, ob die Suche in der aktuellen Zeile oder in der nächsten gültigen Zeile beginnen soll. Sein Wert kann adSearchForward oder
adSearchBackward sein. Ob die Suche am Anfang oder Ende des Recordsets endet, wird durch den searchDirection-Wert bestimmt.
start Optional, Varianten-Lesezeichen, wird als Startposition der Suche verwendet.
Kriterien „Vergleichsoperator“ können sein: „>“ (größer als), „<“ (kleiner als), „=" (gleich), „>=" (größer als oder gleich), „<=" (kleiner als). oder gleich), „<>“
(ungleich) oder „like“ (Musterübereinstimmung). Die Werte in Kriterien können Zeichenfolgen, Gleitkommazahlen oder Datumsangaben sein. String-Werte werden durch einfache Anführungszeichen begrenzt (z. B. „state = ‚WA‘“).
Datumswerte werden durch „#“ (numerische Symbole) getrennt (z. B. „Startdatum > #22.07.97#“).
Es ist zu beachten, dass find nicht mehrere Felder unterstützt. Dies kann jedoch mithilfe von Filtern erreicht werden. „name='abc'“AND „city='sh'“ ist nicht zulässig
. 6. Die Move-Methode verschiebt die Position des aktuellen Datensatzes im Recordset-Objekt
Recordset.Move NumRecords, Start
NumRecords Ein vorzeichenbehafteter langer Ganzzahlausdruck, der die Anzahl der Datensätze angibt, die von der aktuellen Datensatzposition verschoben werden sollen.
Start optional, Zeichenfolgen- oder Variantentyp, der zum Berechnen von Lesezeichen verwendet wird. Kann auch einer der folgenden Werte sein:
AdBookmarkCurrent Default. Beginnen Sie mit dem aktuellen Datensatz.
AdBookmarkFirst beginnt mit dem ersten Datensatz.
AdBookmarkLast beginnt mit dem letzten Datensatz.
Zu beachten sind:
(1) Wenn der NumRecords-Parameter größer als Null ist, wird die aktuelle Datensatzposition nach vorne verschoben (in Richtung des Endes des Datensatzsatzes). Wenn NumRecords kleiner als Null ist, wird die aktuelle Datensatzposition nach hinten verschoben (in Richtung des Anfangs des Recordsets).
(2) Der Aufruf der Move-Methode aus einem leeren Recordset-Objekt führt zu einem Fehler.
(3) Wenn der Move-Aufruf die aktuelle Datensatzposition vor den ersten Datensatz verschiebt, platziert ADO den aktuellen Datensatz vor dem ersten Datensatz des Recordsets (BOF ist True). Der Versuch, rückwärts zu gehen, wenn die BOF-Eigenschaft bereits True ist, erzeugt einen Fehler. Wenn der Move-Aufruf die aktuelle Datensatzposition nach dem Enddatensatz verschiebt, platziert ADO den aktuellen Datensatz nach dem Enddatensatz des Recordsets (EOF ist True). Der Versuch, fortzufahren, wenn das EOF-Attribut bereits „True“ ist, führt zu einem Fehler.
7. Die Methoden MoveFirst, MoveLast, MoveNext und MovePrevious bewegen sich zum ersten, letzten, nächsten oder vorherigen Datensatz im angegebenen Recordset-Objekt und machen den Datensatz zum aktuellen Datensatz.
Recordset.{MoveFirst |. MoveLast |.
Zu beachten sind:
(1) Verwenden Sie die MoveNext-Methode, um den aktuellen Datensatz um einen Datensatz nach vorne zu verschieben (zum Ende des Recordsets). Wenn der letzte Datensatz der aktuelle Datensatz ist und die MoveNext-Methode aufgerufen wird, legt ADO den aktuellen Datensatz nach dem Enddatensatz des Recordset fest (EOF ist True). Der Versuch, fortzufahren, wenn das EOF-Attribut bereits „True“ ist, führt zu einem Fehler.
(2) Verwenden Sie die MovePrevious-Methode, um die aktuelle Datensatzposition um einen Datensatz nach hinten zu verschieben (zum Anfang des Datensatzsatzes). Das Recordset-Objekt muss die Rückwärtsbewegung des Cursors unterstützen; andernfalls generiert der Methodenaufruf einen Fehler. Wenn der erste Datensatz der aktuelle Datensatz ist und die MovePrevious-Methode aufgerufen wird, legt ADO den aktuellen Datensatz vor dem ersten Datensatz des Recordset fest (BOF ist True). Wenn das BOF-Attribut „True“ ist, wird bei der Rückwärtsbewegung ein Fehler generiert.
8. Die Clone-Methode erstellt ein doppeltes Recordset-Objekt, das mit dem vorhandenen Recordset-Objekt identisch ist. Geben Sie optional an, dass das Replikat schreibgeschützt ist.
Setzen Sie rstDuplicate = rstOriginal.Clone
rstDuplicate-Objektvariable, die das doppelte Recordset-Objekt identifiziert, das erstellt wird.
Die Objektvariable rstOriginal identifiziert das zu kopierende Recordset-Objekt.
Verwenden Sie die Clone-Methode, um mehrere Kopien eines Recordset-Objekts zu erstellen. Dies ist nützlich, wenn Sie mehrere aktuelle Datensätze in einer bestimmten Datensatzgruppe behalten möchten. Die Verwendung der Clone-Methode ist wesentlich effizienter als das Erstellen und Öffnen eines neuen Recordset-Objekts mit derselben Definition wie die ursprüngliche Definition.
Das heißt
rs.open exec,conn,1,1
rs2.open exec,conn,1,1
Es sollte so umgeschrieben werden
rs.open exec,conn,1,1
rs2=rs.clone
sollte Folgendes beachten:
(1) Der aktuelle Datensatz der neu erstellten Kopie wird als erster Datensatz festgelegt.
(2) Durch das Schließen des ursprünglichen Recordsets wird dessen Kopie nicht geschlossen, und durch das Schließen einer Kopie wird weder das ursprüngliche Recordset noch eine andere Kopie geschlossen.
9. Die Close-Methode schließt das geöffnete Objekt und alle zugehörigen Objekte.
Objekt.Schließen
Zu beachten sind:
(1) Verwenden Sie die Close-Methode, um das Recordset-Objekt zu schließen, um alle zugehörigen Systemressourcen freizugeben. Durch das Schließen eines Objekts wird es nicht aus dem Speicher gelöscht; Sie können seine Eigenschafteneinstellungen ändern und
es später erneut öffnen. Um das Objekt vollständig aus dem Speicher zu entfernen, setzen Sie die Objektvariable auf Nothing.
(2) Wenn Sie im sofortigen Aktualisierungsmodus bearbeiten, erzeugt der Aufruf der Close-Methode einen Fehler und Sie sollten zuerst die Update- oder CancelUpdate-Methode aufrufen.
10. Offene Methode, warum sagen wir das zuletzt? Da die vorherigen Attributmethoden nicht klar sind, werden wir den CursorType-Parameter nicht verstehen.
Recordset.Open Source, ActiveConnection, CursorType, LockType, Optionen
Recordset-Objekte können über die Source-Eigenschaft eine Verbindung zu Command-Objekten herstellen. Der Quellparameter kann ein Befehlsobjektname, ein SQL-Befehl, ein angegebener Datentabellenname oder eine gespeicherte Prozedur sein. Wenn dieser Parameter weggelassen wird, verwendet das System die Source-Eigenschaft des Recordset-Objekts. ActiveConnection
Recordset-Objekte können über die ActiveConnection-Eigenschaft eine Verbindung zu Connection-Objekten herstellen. Die ActiveConnection kann hier ein Verbindungsobjekt oder eine Zeichenfolge von Zeichenfolgenparametern sein, die
Datenbankverbindungsinformationen
enthalten (ConnectionString).CursorType
Der CursorType-Parameter der Open-Methode des Recordset-Objekts gibt an, mit welchem Cursortyp die Daten gestartet werden, einschließlich adOpenForwardOnly, adOpenKeyset, adOpenDynamic und ad
OpenStatic, die wie folgt beschrieben werden:
---------- ------- ------------------------------------------- -----
Konstante Konstantwertbeschreibung-
-------------------------- ---------- ----------
adOpenForwardOnly 0 Standardwert, startet einen Cursor, der sich nur vorwärts bewegen kann (Forward Only).
adOpenKeyset 1 startet einen Cursor vom Typ Keyset.
adOpenDynamic 2 startet einen dynamischen Cursor.
adOpenStatic 3 startet einen statischen Cursor.
-------------------------------------------------- -----------
Die oben genannten Cursortypen wirken sich direkt auf alle Eigenschaften und Methoden des Recordset-Objekts aus. Die folgende Liste erläutert die Unterschiede zwischen ihnen.
Recordset-Eigenschaften adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
AbsolutePage Nicht unterstützt Nicht unterstützt Lesbar und beschreibbar Lesbar und beschreibbar
AbsolutePosition Nicht unterstützt Nicht unterstützt Lesbar und beschreibbar Lesbar und beschreibbar
BOF Nur lesen Nur lesen Nur lesen
CursorType Lesen/Schreiben Lesen/Schreiben Lesen/Schreiben Lesen/Schreiben
EOF Nur lesen Lesen -only Nur lesen
Filter Lesen und schreiben Lesen und schreiben Lesen und schreiben Lesen und schreiben
LockType Lesen und schreiben Lesen und schreiben Lesen und schreiben Lesen und schreiben
PageCount Nicht unterstützt Nicht unterstützt Nur lesen Nur lesen
PageSize Lesen und schreiben Lesen und schreiben Lesen und schreiben Lesen Write
RecordCount Nicht unterstützt Nicht unterstützt Schreibgeschützt Schreibgeschützt
AddNew Unterstützt Unterstützt Unterstützt Unterstützt
CancelBatch Unterstützt Unterstützt Unterstützt Unterstützt CancelUpdate Unterstützt Unterstützt
Unterstützt Unterstützt
Unterstützt Schließen Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt
Löschen Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt
Verschieben Nicht unterstützt Unterstützt Unterstützt Unterstützt Unterstützt
MoveFirst Unterstützt Unterstützt Unterstützt Unterstützt Unterstützt
MoveLast Nicht unterstützt Unterstützt Unterstützt Unterstützt
Support MoveNext Support Support Support Support Support
MovePrevious Nicht unterstützt Support Support Support
Open Support
Support Support Support Update
Support Support Support Support UpdateBatch Support Support Support Support
------ ---------------------- -------------- ---------
Der LockType-Parameter der Open-Methode des Recordset-Objekts gibt an, dass der Lock-Typ Wenn dieser Parameter weggelassen wird, verwendet das System die LockType-Eigenschaft des Recordset-Objekts als Standardwert. Zu den LockType-Parametern gehören adLockReadOnly, adLockPrssimistic, adLockOptimistic und adLockBatchOptimistic usw., die wie folgt beschrieben werden:
Beschreibung des Konstantenwerts
--------------------------- ------ --------------------------------
adLockReadOnly 1 Standardwert, das Recordset-Objekt wird beim Lesen gestartet -only-Modus und kann die Methoden „AddNew“, „Update“ und „Delete“ nicht ausführen.
adLockPrssimistic 2 Wenn die Datenquelle aktualisiert wird, sperrt das System vorübergehend die Aktionen anderer Benutzer, um die Datenkonsistenz aufrechtzuerhalten.
adLockOptimistic 3 Wenn die Datenquelle aktualisiert wird, sperrt das System die Aktionen anderer Benutzer nicht und andere Benutzer können Daten hinzufügen, löschen und ändern.
adLockBatchOptimistic 4 Wenn die Datenquelle aktualisiert wird, müssen andere Benutzer das CursorLocation-Attribut in adUdeClientBatch ändern, um Daten hinzuzufügen, zu löschen oder zu ändern.
Zu beachten sind:
Wenn die Datenquelle keine Datensätze zurückgibt, setzt der Anbieter sowohl die BOF- als auch die EOF-Eigenschaft auf True und definiert nicht die aktuelle Datensatzposition. Wenn der Cursortyp dies zulässt, können dem leeren Recordset-Objekt weiterhin neue Daten hinzugefügt werden.