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.
Attention |
---|
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.
Attention |
---|
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