CRecordset::AddNew

virtuelle privatevoid AddNew ( );
werfen ( CDBException );

Bemerkungen

Rufen Sie diese Memberfunktion um die Vorbereitung für die Tabelle einen neuen Datensatz hinzuzufügen. Sie müssen die Requery -Memberfunktion auf den neu hinzugefügten Datensatz finden Sie unter aufrufen. Der Datensatz Felder sind anfänglich Null. (In der Datenbankterminologie Null bedeutet "kein 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 in der Datenquelle.

Hinweis&Nbsp;  Wenn Sie das gesammelte Abrufen von Zeilen implementiert haben, können nicht Sie AddNewaufrufen. Dadurch wird eine Assertionsmeldung. Obwohl CRecordset -Klasse nicht über einen Mechanismus zum Aktualisieren von Zeilen Massenkopieren von Daten bereitstellt, können Sie eigene Funktionen schreiben, mithilfe der ODBC-API-Funktion SQLSetPos. Ein Beispiel für wie Sie dies tun, finden Sie im Beispiel DBFETCH. Weitere Informationen über gesammelte finden Sie im Artikel Recordset: Abrufen von Datensätzen in einer Sammeloperation (ODBC) im Visual C++ Programmer's Guide.

AddNew bereitet einen neuen, leeren Datensatz mithilfe der Recordset-Felddatenmember. Nachdem Sie AddNewaufrufen, legen Sie die gewünschten Werte in der Recordset-Felddatenmember. (Sie haben nicht die Edit -Memberfunktion aufrufen, zu diesem Zweck; verwenden Sie nur für vorhandene Datensätze Bearbeiten .) Wenn Sie anschließend Updateaufrufen, Werte in die Felddaten, die Mitglieder in der Datenquelle gespeichert werden geändert.

Vorsicht&Nbsp;  Wenn Sie zu einem neuen Datensatz Blättern, bevor Sie Updateaufrufen, der neue Datensatz geht verloren, und keine Warnung wird angezeigt.

Wenn die Datenquelle Transaktionen unterstützt, können Sie Ihre AddNew aufrufen, Teil einer Transaktion vornehmen. Weitere Informationen über Transaktionen finden Sie unter CDatabase-Klasse. Beachten Sie, dass Sie CDatabase::BeginTrans aufrufen sollten, bevor Sie AddNew aufrufen.

Wichtig&Nbsp;  Für Dynasets werden neue Datensätze an das Recordset als der letzte Datensatz hinzugefügt. Hinzugefügt Datensätze sind nicht auf Snapshots — Sie müssen aktualisieren Sie das Recordset Requery aufrufen.

Es ist illegal für ein Recordset AddNew aufrufen, dessen Öffnen -Memberfunktion nicht aufgerufen wurde. Ein CDBException wird ausgelöst, wenn der Aufruf von AddNew enthält für ein Recordset, die kann nicht angefügt werden. Sie können bestimmen, ob das Recordset aktualisierbar ist, indem Sie die CanAppend aufrufen.

Weitere Informationen finden Sie in die folgenden Artikeln im Visual C++ Programmer's Guide: Recordset: Datensatzaktualisierung durch Recordsets (ODBC), Recordset: Hinzufügen, aktualisieren und Löschen von Datensätzen (ODBC), und Transaktion (ODBC).

Beispiel

Finden Sie im Artikel Transaktion: Ausführen einer Transaktion in einem Recordset (ODBC) im Visual C++ Programmer's Guide.

CRecordset ÜbersichtMember der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;CRecordset::Edit, CRecordset::Delete, CRecordset:: Update, CRecordset:: Requery, CDatabase::BeginTrans, CDBException

Index