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
Optional. Ein einzelner Name oder ein Array von Namen oder Ordnungspositionen der Felder im neuen Datensatz.

Werte
Optional. Ein einzelner Wert oder ein Array von Werten für die Felder im neuen Datensatz. Wenn Fieldlist ein Array ist, muss Values 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 zum Erstellen und Initialisieren eines neuen Datensatzes. Verwenden Sie die Supports-Methode mit adAddNew (ein CursorOptionEnum-Wert), um zu überprüfen, ob Sie Datensätze zum aktuellen Recordset-Objekt hinzufügen können.

Nachdem Sie die AddNew-Methode aufgerufen haben, wird der neue Datensatz zum aktuellen Datensatz und bleibt nach dem Aufrufen der Update-Methode aktuell. Da der neue Datensatz an das Recordset angefügt wird, erfolgt der Aufruf von MoveNext nach dem Update über das Ende des Recordsets hinweg, sodass EOF „True“ ist. Wenn das Recordset-Objekt keine Textmarken unterstützt, können Sie gegebenenfalls 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 auf den neuen Datensatz zugreifen zu können.

Wenn Sie AddNew beim Bearbeiten des aktuellen Datensatzes oder beim Hinzufügen eines neuen Datensatzes aufrufen, ruft ADO die Update-Methode auf, um Änderungen zu speichern. Anschließend wird der neue Datensatz erstellt.

Das Verhalten der AddNew-Methode hängt vom Aktualisierungsmodus des Recordset-Objekts und davon ab, ob Sie die Fieldlist- und Values-Argumente übergeben.

Im Modus für sofortiges Update (der Anbieter schreibt Änderungen in die zugrunde liegende Datenquelle, sobald Sie die Update-Methode aufrufen), wird beim Aufruf der AddNew-Methode ohne Argumente die EditMode-Eigenschaft auf adEditAdd festgelegt (ein EditModeEnum-Wert). Änderungen an Feldwerten werden vom Anbieter lokal zwischengespeichert. Beim Aufruf der Update-Methode wird der neue Datensatz in der Datenbank veröffentlicht, und die EditMode-Eigenschaft wird auf adEditNone zurückgesetzt (ein EditModeEnum-Wert). Wenn Sie die Fieldlist- und Values-Argumente übergeben, veröffentlicht ADO den neuen Datensatz umgehend in der Datenbank (es ist kein Aufruf von Updateerforderlich). Der Wert der EditMode-Eigenschaft bleibt unverändert (adEditNone).

Im Batchupdatemodus (der Anbieter speichert mehrere Änderungen zwischen und schreibt sie erst beim Aufruf der UpdateBatch-Methode in die zugrunde liegende Datenquelle) wird die EditMode-Eigenschaft beim Aufruf der AddNew-Methode ohne Argumente auf adEditAdd festgelegt. Änderungen an Feldwerten werden vom Anbieter lokal zwischengespeichert. Beim Aufruf der Update-Methode wird der neue Datensatz zum aktuellen Recordset hinzugefügt. Der Anbieter veröffentlicht die Änderungen jedoch erst in der zugrunde liegenden Datenbank und setzt EditMode erst auf adEditNone zurück, wenn Sie die UpdateBatch-Methode aufrufen. Wenn Sie die Fieldlist- und Values-Argumente übergeben, sendet ADO den neuen Datensatz zum Speichern in einem Cache an den Anbieter und legt EditMode auf adEditAdd fest. Zum Veröffentlichen des neuen Datensatzes in der zugrunde liegenden Datenbank müssen Sie die UpdateBatch-Methode aufrufen.

Beispiel

Das folgende Beispiel zeigt, wie Sie die AddNew-Methode mit der enthaltenen Feld- und Wertliste verwenden. Anhand dieses Beispiels wird veranschaulicht, wie die Feld- und Wertliste als Array eingefügt 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)

Weitere Informationen

AddNew-Methode – Beispiel (VB)
AddNew-Methode – Beispiel (VBScript)
AddNew-Methode – Beispiel (VC++)
CancelUpdate-Methode (ADO)
EditMode-Eigenschaft
Requery-Methode
Supports-Methode
Update-Methode
UpdateBatch-Methode