CRecordset::AddNew
Veröffentlicht: Juli 2016
Bereitet sich für das Hinzufügen eines neuen Datensatzes zur Tabelle vor.
Syntax
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.
Hinweis
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.
Warnung
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.
Hinweis
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
Exception
Condition
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
CRecordset Class
Hierarchiediagramm
CRecordset::Edit
CRecordset::Delete
CRecordset::Update
CRecordset::Requery
CDatabase::BeginTrans
CDBException Class