AddNew-Methode (ADO)
Erstellt einen neuen Datensatz für ein aktualisierbares Recordset -Objekt.
Syntax
recordset.AddNew FieldList, Values
Parameter
Recordset-
Ein Recordset-Objekt.
FieldList-
Wahlfrei. Ein einzelner Name oder ein Array von Namen oder Ordnungspositionen der Felder im neuen Datensatz.
Werte
Wahlfrei. Ein einzelner Wert oder ein Array von Werten für die Felder im neuen Datensatz. Wenn Feldliste ein Array ist, müssen Werte auch ein Array mit derselben Anzahl von Elementen sein; andernfalls tritt ein Fehler auf. Die Reihenfolge der Feldnamen muss mit der Reihenfolge der Feldwerte in jedem Array übereinstimmen.
Bemerkungen
Verwenden Sie die AddNew--Methode, um einen neuen Datensatz zu erstellen und zu initialisieren. Verwenden Sie die Supports-Methode mit adAddNew- (einem CursorOptionEnum Wert), um zu überprüfen, ob Sie dem aktuellen Recordset-Objekt Datensätze hinzufügen können.
Nachdem Sie die AddNew-Methode aufgerufen haben, wird der neue Datensatz zum aktuellen Datensatz und bleibt aktuell, nachdem Sie die Update-Methode aufgerufen haben. Da der neue Datensatz an das Recordset-angefügt wird, wird ein Aufruf von MoveNext- nach dem Update über das Ende des Recordset-verschoben, wodurch EOF True erfolgt. Wenn das Recordset-Objekt keine Lesezeichen unterstützt, können Sie möglicherweise nicht auf den neuen Datensatz zugreifen, sobald Sie zu einem anderen Datensatz wechseln. Je nach Cursortyp müssen Sie möglicherweise die Requery-Methode aufrufen, um den neuen Datensatz barrierefrei zu machen.
Wenn Sie AddNew- beim Bearbeiten des aktuellen Datensatzes oder beim Hinzufügen eines neuen Datensatzes aufrufen, ruft ADO die Update-Methode auf, um alle Änderungen zu speichern und dann den neuen Datensatz zu erstellen.
Das Verhalten der AddNew--Methode hängt vom Aktualisierungsmodus des Recordset Objekts ab und davon, ob Sie die Fieldlist-- und Values-Argumente übergeben.
Im unmittelbaren Aktualisierungsmodus (in dem der Anbieter Änderungen an der zugrunde liegenden Datenquelle schreibt, sobald Sie die Update-Methode aufgerufen haben), legt das Aufrufen der AddNew-Methode ohne Argumente die EditMode-Eigenschaft auf adEditAdd (ein EditModeEnum Wert) fest. Der Anbieter speichert alle Feldwertänderungen lokal zwischen. Durch Aufrufen der Update-Methode wird der neue Datensatz in die Datenbank hochgeladen und die eigenschaft EditMode auf adEditNone zurückgesetzt (ein EditModeEnum Wert). Wenn Sie die Fieldlist-- und Values-Argumente übergeben, stellt ADO sofort den neuen Datensatz in die Datenbank ein (kein Aktualisieren Aufrufs ist erforderlich); der EditMode Eigenschaftswert ändert sich nicht (adEditNone).
Im Batchaktualisierungsmodus (in dem der Anbieter mehrere Änderungen zwischenspeichert und in die zugrunde liegende Datenquelle schreibt, nur wenn Sie die UpdateBatch-Methode aufrufen), wird durch Aufrufen der AddNew--Methode ohne Argumente die EditMode-Eigenschaft auf adEditAddfestgelegt. Der Anbieter speichert alle Feldwertänderungen lokal zwischen. Durch Aufrufen der Update-Methode wird der neue Datensatz dem aktuellen Recordset-hinzugefügt, aber der Anbieter stellt die Änderungen an der zugrunde liegenden Datenbank nicht bereit, oder setzt die EditMode- auf adEditNonezurück, bis Sie die UpdateBatch-Methode aufrufen. Wenn Sie die argumente Fieldlist und Values übergeben, sendet ADO den neuen Datensatz an den Anbieter für den Speicher in einem Cache und legt die EditMode- auf adEditAdd; Sie müssen die UpdateBatch Methode aufrufen, um den neuen Datensatz in der zugrunde liegenden Datenbank zu veröffentlichen.
Beispiel
Das folgende Beispiel zeigt, wie Die AddNew-Methode mit der enthaltenen Feldliste und Wertliste verwendet wird, um zu sehen, wie die Feldliste und die Wertliste als Arrays eingeschlossen werden.
create table aa1 (intf int, charf char(10))
insert into aa1 values (2, 'aa')
Dim cn As New adodb.Connection
Dim rs As New adodb.Recordset
Dim cmd As New adodb.Command
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=alexverb2;uid=sa;pwd=<password>;"
cn.Open
rs.Open "select * from xxx..aa1", cn, adOpenKeyset, adLockOptimistic
Dim fieldsArray(1) As Variant
fieldsArray(0) = "intf"
fieldsArray(1) = "charf"
Dim values(1) As Variant
values(0) = 4
values(1) = "as"
rs.AddNew fieldsArray, values
rs.Update
Gilt für
Siehe auch
AddNew-Methode (Beispiel) (VB)
AddNew-Methode (Beispiel) (VBScript)
AddNew-Methode (VC++-Beispiel)
CancelUpdate-Methode (ADO)
EditMode-Eigenschaft
Requery-Methode
Supports-Methode
Update-Methode
UpdateBatch-Methode