Partager via


CDaoRecordset::AddNew

 

Appelez la fonction membre pour ajouter un nouvel enregistrement à un de type table ou à un recordset de type feuille de réponse dynamique.

Syntaxe

virtual void AddNew( );

Notes

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.

Avertissement

Si vous modifiez un enregistrement puis accédez par défilement à un autre enregistrement sans appeler Mettre à jour, vos modifications sont perdues sans avertissement.

Si vous ajoutez un enregistrement à un recordset de type feuille de réponse dynamique en appelant , l'enregistrement est visible dans le recordset et est inclus dans la table sous-jacente où il devient visible pour tous les nouveaux objets d' CDaoRecordset .af878273-0094-4c9e-911d-5aa7cd243a14#_mfc_cdaorecordset.3a3a.addnew

La position du nouvel enregistrement dépend du type de recordset :

  • Dans un recordset de type feuille de réponse dynamique, où le nouvel enregistrement est inséré n'est pas garanti.Ce comportement modifié avec Microsoft Jet 3,0 pour des raisons de performance et d'accès concurrentiel.Si votre objectif est de noter à l'enregistrement récemment ajouté l'enregistrement actif, obtenez le signet de l'enregistrement et le déplacement de dernière modification à ce signet :

    rs.SetBookmark(rs.GetLastModifiedBookmark());
    
  • Dans un recordset de type table pour lequel un index a été spécifié, les enregistrements sont retournés dans leur emplacement approprié dans l'ordre de tri.Si aucun index n'a été spécifié, les nouveaux enregistrements sont retournés vers la fin du recordset.

L'enregistrement qui était actuel avant de AddNew utilisé reste actif.Si vous souhaitez noter le nouvel enregistrement actuel et le recordset prend en charge des signets, appelez SetBookmark au signet identifié par le paramètre de propriété de dernière modification de l'objet recordset sous-jacent DAO.Cela est utile pour déterminer la valeur de compteur champs (incrémentées automatiquement) dans un enregistrement ajouté.Pour plus d'informations, consultez GetLastModifiedBookmark.

Si les transactions de prend en charge des bases de données, vous pouvez rendre votre partie d'appel d' AddNew 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 n'est pas conforme d'appeler AddNew pour un recordset dont la fonction membre d' Ouvrez n'a pas été appelée.CDaoException 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 en appelant CanAppend.

L'infrastructure marque les membres de données de type champ modifiés pour les vérifier est écrite dans l'enregistrement dans la source de données par le mécanisme du processus DFX (DFX).Modifier la valeur d'un champ définit en général le champ modifié automatiquement, vous devez rarement appeler SetFieldDirty vous-même, mais vous pouvez parfois souhaiter vous assurer que les colonnes sont explicitement mises à jour ou insérées quelle que soit la valeur est dans les données membres de champ.Le mécanisme DFX utilise également l'utilisation de PSEUDO NULL.Pour plus d'informations, consultez CDaoFieldExchange::m_nOperation.

Si le mécanisme de double tampon n'est pas utilisé, puis modifier la valeur du champ n'affecte pas automatiquement le champ comme modifié.Dans ce cas, il est nécessaire de définir explicitement le champ modifié.La balise contenue dans m_bCheckCacheForDirtyFields contrôle ce contrôle automatique de champ.

Notes

Si des enregistrements double sont mis en mémoire tampon (autrement dit, le contrôle automatique de champ est activée), appeler CancelUpdate restaurera les variables membres des valeurs qu'elles ont eues avant qu' AddNew ou Modifier a été appelé.

Pour des informations connexes, consultez les rubriques traitant méthode d'AddNew », « la méthode de CancelUpdate », « propriété de a modifié », et « propriété d'EditMode » dans l'aide de DAO.

Configuration requise

Header: afxdao.h

Voir aussi

CDaoRecordset Class
Graphique hiérarchique
CDaoRecordset::CanUpdate
CDaoRecordset::CancelUpdate
CDaoRecordset::Delete
CDaoRecordset::Edit
CDaoRecordset::Update
CDaoRecordset::CanTransact