Partager via


CDatabase::BeginTrans

Appelez la fonction membre pour démarrer une transaction à la source de données connectée.

BOOL BeginTrans( );

Valeur de retour

Une valeur différente de zéro si l'appel a réussi et les modifications sont validés uniquement manuellement ; sinon 0.

Notes

Une transaction se compose d'un ou plusieurs appels à AddNew, Modifier, Supprimer, et les fonctions membres de Mettre à jour d' CRecordset objet.Avant de commencer une transaction, l'objet d' CDatabase doit avoir été déjà connecté à la source de données en appelant la fonction membre d' OpenEx ou de Ouvrir .Pour terminer la transaction, appelez CommitTrans pour recevoir toutes les modifications apportées à la source de données (et les distribuer) ou pour appeler Restaurer pour interrompre la transaction entière.Appel BeginTrans après avoir ouvert tous les recordsets impliqués dans la transaction et aussi proches les opérations de mise à jour réelles que possible.

Mise en gardeAttention

Selon votre pilote ODBC, ouvrez un recordset en avant que l'appel BeginTrans peut provoquer des problèmes en appelant Rollback.Vous devez vérifier le gestionnaire spécifique que vous utilisez.Par exemple, à l'aide de le gestionnaire de Microsoft Access inclus dans le pack de bureau 3,0 de pilote Microsoft ODBC, vous devez montrer la condition du moteur de base de données Jet que vous ne devez pas démarrer une transaction sur une base de données qui a un curseur ouvert.Dans les classes de base de données MFC, un curseur ouvert signifie un objet ouvert d' CRecordset .Pour plus d'informations, consultez note technique 68.

BeginTrans peut également verrouiller des enregistrements de données sur le serveur, selon l'accès concurrentiel demandé et les fonctionnalités de la source de données.Pour plus d'informations sur les données de verrouillage, consultez l'article recordset : Verrouillage d'enregistrements (ODBC).

Les transactions définies par l'utilisateur sont expliquées dans l'article transaction (ODBC).

BeginTrans génère l'état vers lequel la séquence de transactions peut être restaurée (inversé).Pour créer un nouvel état pour les restaure, valider tout transaction en cours, appelez ensuite BeginTrans de nouveau.

Mise en gardeAttention

Le fait d'appeler une nouvelle fois BeginTrans sans appeler CommitTrans ou Rollback constitue une erreur.

Appelez la fonction membre de CanTransact pour déterminer si les transactions de pilote pour une base de données particulière.Vous devez également appeler GetCursorCommitBehavior et GetCursorRollbackBehavior pour déterminer la prise en charge de la conservation du curseur.

Pour plus d'informations sur les transactions, consultez l'article transaction (ODBC).

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 CDatabase

Graphique de la hiérarchie

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact