Freigeben über


CDaoRecordset::AddNew

Rufen Sie die Memberfunktion auf, um einen neuen Datensatz hinzuzufügen oder einem Recordset vom Typ Tabelle vom Typ Dynaset.

virtual void AddNew( );

Hinweise

Die Felder des Datensatzes werden zuerst NULL. (In der Datenbankterminologie, bedeutet NULL "haben keinen Wert" und ist nicht das Gleiche wie NULL in C++.) Um den Vorgang abzuschließen, müssen Sie die Update-Memberfunktion aufrufen. Update speichert die Änderungen an der Datenquelle.

Warnung

Wenn Sie einen Datensatz bearbeiten und dann zu einem anderen Datensatz wechseln, ohne Update aufzurufen, gehen die Änderungen verloren, ohne Warnung.

Wenn Sie einen Datensatz eines Recordsets vom Typ Dynaset hinzufügen, indem Sie AddNew aufrufen, ist der Datensatz im Recordset angezeigt und geschlossen in der zugrunde liegenden Tabelle ein, in der diese auf alle neuen CDaoRecordset-Objekten sichtbar ist.

Die Position des neuen Datensatzes hängt vom Typ des Recordsets ab:

  • In einem Recordset vom Typ Dynaset in dem der neue Datensatz eingefügt wird, wird nicht sichergestellt. Dieses Verhalten geändert mit Microsoft Jet 3,0 aus Gründen der Leistung und der Parallelität. Wenn das Ziel, den neu hinzugefügten Datensatz zum aktuellen Datensatz auszuführen ist, rufen Sie das Lesezeichen des Auslastungs- modifieddatensatzes ab und Verschieben Sie auf diesem Lesezeichen:

    rs.SetBookmark(rs.GetLastModifiedBookmark());
    
  • In einem Recordset vom Typ Tabelle, für die ein Index angegeben wurde, werden Datensätze in ihrem Ort in der richtigen Sortierreihenfolge zurückgegeben. Wenn kein Index angegeben wurde, werden neue Datensätze am Ende des Recordsets zurückgegeben.

Der Datensatz, der aktuell war, bevor Sie sie AddNew aktuell sind. Wenn Sie die aktuelle des neuen Datensatzes ausführen möchten und das Recordset Lesezeichen unterstützt, SetBookmark Aufruf zum Lesezeichen identifiziert durch die Methoden modifiedeigenschafteneinstellung des zugrunde liegenden DAO-Recordset-Objekts. Dies ist zum Bestimmen des Werts für inkrementiert (Auto-Inkrement) Felder im hinzugefügten Datensatz hilfreich. Weitere Informationen finden Sie unter GetLastModifiedBookmark.

Wenn die Datenbankstütztransaktionen, den Sie AddNew Aufrufsteil aus einer Transaktion ausführen können. Weitere Informationen über Transaktionen, finden Sie unter CDaoWorkspace-Klasse. Beachten Sie, dass Sie CDaoWorkspace::BeginTrans aufrufen sollten, bevor Sie AddNew aufrufen.

Es ist nicht zulässig, AddNew für ein Recordset aufzurufen, dessen Öffnen Sie-Memberfunktion nicht aufgerufen wurde. CDaoException wird ausgelöst, wenn Sie AddNew für ein Recordset aufrufen, das nicht angefügt werden kann. Sie können bestimmen, ob das Recordset aktualisierbar ist, indem CanAppend aufruft.

Das Framework markiert veränderte Felddatenmember, um sicherzustellen, dass sie den Datensatz in der Datenquelle durch den Mechanismus des DAO-Datensatzfeldaustauschs (DFX) geschrieben werden. Das Ändern des Werts eines Felds wird im Allgemeinen das Feld fest, das automatisch geändert wurde, müssen Sie sich selten SetFieldDirty aufrufen, sollten Sie auch sicherstellen, dass Spalten explizit aktualisiert oder eingefügt werden unabhängig davon, welchen Wert im Felddatenmember ist. Der DFX-Mechanismus wird auch die Verwendung von PSEUDO NULL ein. Weitere Informationen finden Sie unter CDaoFieldExchange::m_nOperation.

Wenn der Mechanismus der doppelten Pufferung nicht verwendet wird, wird das Ändern des Werts des Felds nicht automatisch das Feld fest, wie geändert. In diesem Fall ist es notwendig, das geänderte Feld explizit festzulegen. Das Flag, das in m_bCheckCacheForDirtyFields enthalten ist, steuert diese automatische Feldüberprüfung.

Hinweis

Wenn Datensätze (das heißt, ist die automatische Feldüberprüfung aktiviert), Double-gepuffert werden, CancelUpdate Aufrufen stellt die Membervariablen auf die Werte zurückgesetzt, die sie aufwiesen, bevor AddNew oder Bearbeiten aufgerufen wurden.

Weitere Informationen finden Sie in den Themen "AddNew-Methode", "CancelUpdate-Methode", "Auslastungs- modifiedeigenschaft" und "EditMode-Eigenschaft" in der DAO-Hilfe.

Anforderungen

Header: afxdao.h

Siehe auch

Referenz

CDaoRecordset-Klasse

Hierarchiediagramm

CDaoRecordset::CanUpdate

CDaoRecordset::CancelUpdate

CDaoRecordset::Delete

CDaoRecordset::Edit

CDaoRecordset::Update

CDaoRecordset::CanTransact