Partager via


CRecordset::AddNew

Se prépare à ajouter un nouvel enregistrement à la table.

virtual void AddNew( );

Notes

Vous devez appeler la fonction membre d' Actualiser pour afficher l'enregistrement récemment ajouté.Les champs de l'enregistrement sont initialement null.(Dans la terminologie de base de données, NULL signifie « avoir aucune valeur » et n'est pas identiques NULL en C++.) Pour arrêter l'exécution, vous devez appeler la fonction membre de mise à jour .Mettre à jour enregistre les modifications apportées à la source de données.

[!REMARQUE]

Si vous avez implémenté l'extraction de lignes en bloc, vous ne pouvez pas appeler AddNew.Cela provoquera une assertion.Bien que la classe CRecordset ne fournit pas de mécanisme pour mettre à jour les lignes en bloc de données, vous pouvez écrire vos propres fonctions à l'aide de la fonction API ODBC SQLSetPos.Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article recordset : Extraction globale d'enregistrements (ODBC).

AddNew prépare un nouvel enregistrement vide, à l'aide de les données membres de champ de recordset.Après avoir appelé AddNew, définissez les valeurs que vous souhaitez dans les données membres de champ de recordset.(Vous ne devez pas appeler la fonction membre de modification à cet effet ; utilisation Modifier uniquement pour les enregistrements existants.) Lorsque vous appelez ensuite Mettre à jour, les valeurs modifiées dans les données membres de champ sont enregistrées dans la source de données.

Mise en gardeAttention

Si vous accédez à un nouvel enregistrement avant d'appeler Mettre à jour, le nouvel enregistrement est détruit, et aucun avertissement n'est fourni.

Si la source de données prend en charge les transactions, vous pouvez rendre votre partie d'appel d' AddNew d'une transaction.Pour plus d'informations sur les transactions, consultez la classe CDatabase.Notez que vous devez appeler CDatabase::BeginTrans avant d'appeler AddNew.

[!REMARQUE]

Pour les feuilles de réponse dynamiques, de nouveaux enregistrements sont ajoutés au recordset comme dernier enregistrement.Les enregistrements ajoutés ne sont pas ajoutés aux instantanés ; vous devez appeler Requery pour actualiser le recordset.

Il n'est pas conforme d'appeler AddNew pour un recordset dont la fonction membre de Ouvrir n'a pas été appelée.CDBException est levée si vous appelez AddNew pour un recordset qui ne peut pas être ajouté.Vous pouvez déterminer si le recordset est modifiable à jour en appelant CanAppend.

Pour plus d'informations, consultez les articles suivants : recordset : comment enregistrements de mise à jour de recordsets (ODBC), recordset : Ajouter, mettre à jour, et la suppression d'enregistrements (ODBC), et transaction (ODBC).

Exceptions

Cette méthode peut lever des exceptions de type CDBException*.

Exemple

Consultez l'article transaction : L'exécution d'une transaction dans un recordset (ODBC).

Configuration requise

Header: afxdb.h

Voir aussi

Référence

Classe de CRecordset

Graphique de la hiérarchie

CRecordset::Edit

CRecordset::Delete

CRecordset::Update

CRecordset::Requery

CDatabase::BeginTrans

Classe de CDBException