Transactions (Accès aux données MFC)

Le concept de transaction a été développé pour gérer les cas dans lesquels l'état résultant de la base de données dépend du succès total d'une série d'opérations. Cette situation peut survenir car des opérations successives peuvent modifier les résultats des opérations précédentes. Dans ce cas, si l'une des opérations échoue, l'état résultant pourrait être indéterminé.

Pour résoudre ce problème, les transactions regroupent une série d'opérations pour que l'intégrité du résultat final puisse être assurée. Soit toutes les opérations doivent réussir puis être validées (écrites dans la base de données), soit la transaction entière échoue. L'annulation de la transaction est appelée « restauration ». La restauration permet d'annuler les modifications et de rétablir la base de données à l'état précédant la transaction.

Par exemple, dans une transaction bancaire automatisée, si vous transférez une somme d’argent du compte A au compte B, la retrait de A et le crédit de B doivent tous deux réussir pour que les fonds soient traités correctement ou la transaction complète doit échouer.

Une transaction doit avoir des propriétés ACID, à savoir :

  • L’atomicité A transaction est une unité atomique de travail et s’exécute exactement une seule fois ; soit tout le travail est effectué, soit aucun d’entre eux.

  • La cohérence D’une transaction conserve la cohérence des données, en transformant un état cohérent de données en un autre état cohérent de données. Les données liées par une transaction doivent être préservées sémantiquement.

  • L’isolation A transaction est une unité d’isolation et chacune se produit séparément et indépendamment des transactions simultanées. Une transaction ne doit jamais voir les phases intermédiaires d’une autre transaction.

  • La durabilité Une transaction est une unité de récupération. Si une transaction réussit, ses mises à jour persistent, même si le système tombe en panne ou est arrêté. Si une transaction échoue, le système reste à l’état qui était le sien avant la validation de la transaction.

Vous pouvez prendre en charge les transactions dans OLE DB (voir Transactions de prise en charge dans OLE DB) ou ODBC (voir Transaction (ODBC)).

Une transaction distribuée est une transaction qui met à jour des données distribuées, c'est-à-dire des données qui se trouvent sur plusieurs systèmes informatiques en réseau. Si vous souhaitez prendre en charge les transactions sur un système distribué, vous devez utiliser ADO.NET plutôt que la prise en charge des transactions OLE DB.

Voir aussi

Programmation de l’accès aux données (MFC/ATL)