CDaoRecordset::Edit

Rufen Sie die Memberfunktion auf, um Änderungen am aktuellen Datensatz zu ermöglichen.

virtual void Edit( );

Hinweise

Nachdem Sie die Edit-Memberfunktion aufrufen, werden die Änderungen, die an den Feldern des aktuellen Datensatzes vorgenommen werden, am Kopienpuffer kopiert.Nachdem Sie die gewünschten Änderungen am Datensatz vornehmen, Aufruf Update, um die Änderungen zu speichern.Edit speichert die Werte der Datenmember des Recordsets.Wenn Sie Edit aufrufen, nehmen Sie Änderungen vor, und rufen Sie dann Edit erneut, die Werte des Datensatzes werden wiederhergestellt zu auf, was sie vor dem ersten Aufruf Edit waren.

WarnhinweisVorsicht

Wenn Sie einen Datensatz bearbeiten und dann eine Operation ausführen, der zu einem anderen Datensatz ohne vorhergehenden aufrufende Update bewegt wird, gehen die Änderungen verloren, ohne Warnung.Wenn Sie das Recordset oder die Elemente Datenbank schließen, wird das bearbeiteter Datensatz verworfen, ohne Warnung.

In einigen Fällen müssen Sie eine Spalte aktualisieren, indem Sie sie ungültig zu machen vorliegt (keine Daten enthalten).Hierzu, rufen Sie SetFieldNull mit einem Parameter von TRUE auf um die Feld NULL zu markieren, dieses bewirkt auch die Spalte aktualisiert.Wenn Sie ein Feld in die Datenquelle geschrieben werden, obwohl der Wert nicht geändert hat, rufen Sie SetFieldDirty mit einem Parameter von TRUE auf.Dies funktioniert, selbst wenn das Feld den Wert NULL hat.

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.

Wenn das Recordset-Objekt pessimistisch in einer Mehrbenutzerumgebung gesperrt ist, bleibt das Datensatz von der Zeit Edit wird gesperrt, bis das Aktualisieren abgeschlossen ist.Wenn das Recordset optimistisch gesperrt ist, wird der Datensatz mit dem aufbereiteten Datensatz gesperrt und verglichen, bevor er in der Datenbank aktualisiert wird.Wenn der Datensatz geändert wurde, seit Sie Edit aufgerufen haben, haben schlägt der Update Vorgang ausgeführt und MFC löst eine Ausnahme aus.Sie können das Sperrverhalten mit SetLockingMode ändern.

HinweisHinweis

eingeschränktes Sperren wird immer auf Formaten der externen Datenbank, wie ODBC und installierbarem ISAM verwendet.

Der aktuelle Datensatz aktuell bleibt, nachdem Sie Edit aufrufen.So Edit aufrufen, muss es einen aktuellen Datensatz geben.Wenn es keinen aktuellen Datensatz gibt, oder wenn das Recordset kein geöffneten oder Recordset-Objekt vom Typ Tabelle vom Typ Dynaset verweist, wird eine Ausnahme ausgelöst.Das Aufrufen von Edit bewirkt CDaoException, unter den folgenden Bedingungen ausgelöst wird:

  • Es gibt keinen aktuellen Datensatz.

  • Die Datenbank oder das Recordset ist schreibgeschützt.

  • Keine Felder des Datensatzes sind aktualisierbar.

  • Die Datenbank oder das Recordset wurden für die exklusive Verwendung von einem anderen Benutzer geöffnet.

  • Ein anderer Benutzer hat die Seite gesperrt, die den Datensatz enthält.

Wenn die Datenquelle Transaktionen unterstützt, können Sie den Edit Aufrufsteil aus einer Transaktion ausführen.Beachten Sie, dass Sie CDaoWorkspace::BeginTrans aufrufen sollten, bevor Sie Edit aufrufen und nachdem das Recordset geöffnet wurde.Beachten Sie auch, dass CDaoWorkspace::CommitTrans aufzurufen, kein Ersatz für das Aufrufen von Update, um den Vorgang abzuschließen Edit ist.Weitere Informationen über Transaktionen, finden Sie unter CDaoWorkspace-Klasse.

Weitere Informationen finden Sie in den Themen "AddNew-Methode", "Bearbeiten-Methode", "Löschmethode", "Update-Methode" und "aktualisierbare Eigenschaft" in der DAO-Hilfe.

Anforderungen

Header: afxdao.h

Siehe auch

Referenz

CDaoRecordset-Klasse

Hierarchien-Diagramm

CDaoRecordset::AddNew

CDaoRecordset::CancelUpdate

CDaoRecordset::CanTransact

CDaoRecordset::Delete

CDaoRecordset::Update