Freigeben über


CRecordset::AddNew

Bereitet sich für das Hinzufügen eines neuen Datensatzes zur Tabelle vor.

virtual void AddNew( );

Hinweise

Sie müssen die Fragen Sie erneut ab-Memberfunktion aufrufen, um den neu hinzugefügten Datensatz zu finden.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.

HinweisHinweis

Wenn Sie das gesammelte Abrufen von Zeilen implementiert haben, können Sie AddNew nicht aufrufen.Dies führt zu einem Assertionsfehler.Obwohl Klasse CRecordset keinen Mechanismus zum Aktualisieren von Datenzeilen bereitstellt, können Sie eigene Funktionen schreiben, indem Sie die ODBC-API-Funktion SQLSetPos verwenden.Weitere Informationen über das gesammelte Abrufen von Zeilen, finden Sie im Artikel Recordset: Datensätzen in einer Sammeloperation (ODBC).

AddNew bereitet einen neuen, leeren Datensatz mithilfe der Felddatenmember des Recordsets vor.Nachdem Sie AddNew aufrufen, legen Sie die Werte fest, die Sie in den Felddatenmembern des Recordsets soll.(Sie müssen die Bearbeiten-Memberfunktion nicht zu diesem Zweck aufrufen, Verwendung Bearbeiten nur für vorhandene Datensätze). Wenn Sie anschließend Update aufrufen, werden geänderte Werte in den Felddatenmembern in der Datenquelle gespeichert.

WarnhinweisVorsicht

Wenn Sie zu einem neuen Datensatz wechseln, bevor Sie Update aufrufen, ist der neue Datensatz verloren, und keine Warnung wird angegeben.

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

HinweisHinweis

Für Dynasets werden neue Datensätze im Recordset als letzter Datensatz hinzugefügt.Es wurden Datensätze werden nicht in den Momentaufnahmen hinzugefügt; Sie müssen Requery aufrufen, um das Recordset zu aktualisieren.

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

Weitere Informationen finden Sie: Recordset: Datensatzaktualisierung durch Recordsets (ODBC), Recordset: Hinzufügen, Aktualisieren und Löschen von Datensätzen (ODBC) und Transaktion (ODBC).

Ausnahmen

Diese Methode kann Ausnahmen des Typs CDBException* auslösen.

Beispiel

Weitere Informationen finden Sie im Artikel Transaktion: Eine Transaktion in einem Recordset ausführen (ODBC).

Anforderungen

Header: afxdb.h

Siehe auch

Referenz

CRecordset-Klasse

Hierarchien-Diagramm

CRecordset::Edit

CRecordset::Delete

CRecordset::Update

CRecordset::Requery

CDatabase::BeginTrans

CDBException-Klasse