Freigeben über


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

Recordset-Objekt (ADO)

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