CDaoRecordset::AddNew

virtual void AddNew () ;
jeter (CDaoException, CMemoryException);

Remarques

Appelez cette fonction membre pour ajouter un nouvel enregistrement à un objet recordset de type table ou feuille de réponse dynamique de type. 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.

Prude&ncenbsp ;  Si vous modifiez un dossier et puis faites défiler à un autre enregistrement sans appel mise à jour, vos modifications sont perdues sans avertissement.

Si vous ajoutez un enregistrement à un jeu d'enregistrements de type feuille de réponse dynamique en appelant AddNew, le dossier est visible dans l'objet recordset et inclus dans la table sous-jacente, où elle devient visible pour tous les nouveaux objets CDaoRecordset.

La position du nouvel enregistrement dépend du type de jeu d'enregistrements:

Le dossier qui était actuel avant que vous avez utilisé AddNew demeure d'actualité. Si vous voulez faire le nouveau record actuel et l'objet recordset prend en charge les signets, appel à SetBookmark au signet identifié par le paramètre de la propriété LastModified de l'objet sous-jacent du jeu d'enregistrements DAO. Cela est utile pour déterminer la valeur des champs de compteur (auto-increment) dans un dossier ajouté. Pour plus d'informations, voir GetLastModifiedBookmark.

Si la base 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 CDaoWorkspace. Notez que vous devez appeler CDaoWorkspace::BeginTrans avant d'appeler AddNew.

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

Les marques de cadre a changé les données membres de champ pour s'assurer qu'ils seront écrits dans le dossier sur la source de données par le mécanisme de change (DFX) DAO record field. Modification de la valeur d'un champ général définit le champ Sales automatiquement, donc vous devrez rarement appelez SetFieldDirty vous-même, mais vous pouvez parfois souhaiter de s'assurer que les colonnes vont être explicitement mise à jour ou insérés indépendamment de quelle valeur est dans les données membres de champ. Le mécanisme DFX emploie également l'utilisation de PSEUDO NULL. Pour plus d'informations, voir CDaoFieldExchange::m_nOperation.

Si le mécanisme de double-buffering ne sert pas, puis de changer la valeur du champ ne définit pas automatiquement le champ comme sale. Dans ce cas, il sera nécessaire de jeu explicitement le champ sale. Le drapeau contenues dans les contrôles m_bCheckCacheForDirtyFields cette vérification de champ automatique.

&Notenbsp ;  Si les dossiers sont à double-tampon (c'est-à-dire, vérification de champ automatique est activée), appeler CancelUpdate rétablira les variables de membre pour les valeurs qu'ils avaient avant que AddNew ou Edit a été appelée.

Pour plus d'informations sur la mise à jour des dossiers, consultez l'article jeu d'enregistrements DAO : opérations de jeu d'enregistrements dans le Guide du programmeur Visual C++. Pour plus d'informations, consultez les rubriques « Méthode AddNew », « Méthode CancelUpdate », « Propriété LastModified » et « Propriété EditMode » dans l'aide de DAO.

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

Voir aussi  ;CDaoRecordset::CanUpdate, CDaoRecordset::CancelUpdate, CDaoRecordset::Delete, CDaoRecordset::Edit, CDaoRecordset::Update, CDaoRecordset::CanTransact

Index