CRecordset::AddNew

virtuel void AddNew ( );
jeter ( CDBException );

Remarques

Appelez cette fonction membre pour se préparer à ajouter un nouvel enregistrement à la table. Vous devez appeler la fonction membre Requery pour voir le dossier nouvellement ajouté. Les champs de l'enregistrement sont initialement nuls. (Dans la terminologie de base de données, Null signifie « n'avoir aucune valeur » et n'est pas la même chose que NULL en C++). Pour terminer l'opération, vous devez appeler la fonction membre Update . Mise à jour enregistre vos modifications dans la source de données.

&Notenbsp ;  Si vous avez implémenté d'extraction de lignes en bloc, vous ne pouvez pas appeler AddNew. Cela se traduira par une Échec assertion. Bien que la classe CRecordset ne fournit pas un mécanisme de mise à jour de lignes en bloc de données, vous pouvez écrire vos propres fonctions en utilisant la fonction API ODBC SQLSetPos. Pour obtenir un exemple de comment procéder, consultez l'exemple DBFETCH. Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article jeu d'enregistrements : extraction de dossiers en vrac (ODBC) dans le Guide du programmeur Visual C++.

AddNew prépare un enregistrement vide à l'aide de données membres de champ de recordset. Après que vous appelez AddNew, définir les valeurs souhaitées dans les données membres de champ de recordset. (Vous n'avez pas à appeler la fonction membre Edit à cette fin ; utilisez Modifier uniquement pour des enregistrements existants.) Lorsque vous appelez ensuite la mise à jour, changé les valeurs dans les données membres sont enregistrés sur la source de données.

Prude&ncenbsp ;  Si vous accédez à un nouvel enregistrement avant d'appeler Update, le nouvel enregistrement est perdu, et aucune mise en garde n'est faite.

Si la source de données prend en charge les transactions, vous pouvez faire votre AddNew composez le cadre 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.

&Nbsp important;  Pour les feuilles de réponse dynamiques, nouveaux enregistrements sont ajoutés à l'objet recordset comme le dernier enregistrement. Ajoute les enregistrements ne sont pas ajoutés à instantanés, vous devez appeler Requery pour actualiser le jeu d'enregistrements.

Il est illégal d'appeler AddNew pour un jeu d'enregistrements dont la fonction membre Open n'a pas été appelée. Une exception CDBException est levée si vous appelez AddNew pour un jeu d'enregistrements qui ne peut pas être ajouté au. Vous pouvez déterminer si le jeu d'enregistrements est modifiable en appelant CanAppend.

Pour plus d'informations, consultez les articles suivants dans le Guide du programmeur Visual C++: jeu d'enregistrements : mise à jour des Jeux d'enregistrements de données (ODBC), jeu d'enregistrements : ajout, mise à jour et suppression d'enregistrements (ODBC), et Transaction ((ODBC)).

Exemple

Consultez l'article Transaction : exécution d'une Transaction dans un jeu d'enregistrements (ODBC) dans le Guide du programmeur Visual C++.

Aperçu de CRecordset |  ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CRecordset::Edit, CRecordset::Delete, CRecordset::Update, CRecordset::Requery, CDatabase::BeginTrans, CDBException

Index