CFMOTI/NTIC1/2TDI 1 FORMATRICE : SABRI AZIZA Les transactions CFMOTI/NTIC1/2TDI

CFMOTI/NTIC1/2TDI 1 FORMATRICE : SABRI AZIZA Les transactions CFMOTI/NTIC1/2TDI 2 FORMATRICE : SABRI AZIZA CFMOTI/NTIC1/2TDI 3 FORMATRICE : SABRI AZIZA CFMOTI/NTIC1/2TDI 4 FORMATRICE : SABRI AZIZA CFMOTI/NTIC1/2TDI 5 FORMATRICE : SABRI AZIZA CFMOTI/NTIC1/2TDI 6 FORMATRICE : SABRI AZIZA Les transactions en ADO.NET : les transactions locales 1 Introduction 1.1 Présentation Une transaction est un ensemble d’opérations réalisées sur une base de données, exécutée de manière unitaire. En tant qu’unité, ces opérations sont validées uniquement si toutes ont été exécutées avec succès (en application du principe « tout ou rien »). Il existe quatre propriétés connues sous le nom ACID qui définissent une transaction : - Atomicité représente l’intégralité des opérations effectuées par une transaction : soit elles sont validées dans leur ensemble (commit), soit la transaction est annulée (rollback). - Cohérence représente l’intégrité de la base de donnée, que la transaction est était validé ou annulé, la base de donnée doit rester intègre. - Isolation, une transaction est indépendante d’une autre transaction. Les transactions ne peuvent interférer entre elles. - Durabilité, les données sont préservées une fois la transaction achevée. Il existe deux types de transactions en ADO.net, les transactions locales et les transactions distribuées. Les transactions locales sont des transactions simples qui effectuent des opérations sur une seule ressource (par exemple une base de données). Les transactions distribuées quand à elles, sont des transactions qui utilisent de nombreuses ressources. 1.2 Principes d’exécution d’une transaction Le schéma ci-dessous vous expose le principe d’exécution d’une transaction : CFMOTI/NTIC1/2TDI 7 FORMATRICE : SABRI AZIZA 1.3 Présentation de la base de données Dans les cas pratiques présentés dans ce cours, nous allons utiliser une base de données SQL Server 2008 nommée DotnetFranceA pour aborder les transactions locales 1.3.1 Création de la base de données DotnetFranceA La base de données DotnetFranceA ne contient qu’une seule table, nommée Stagiaire. Voici un script SQL, permettant de créer cette table : Et voici un autre script permettant d’alimenter cette table : 2 Les transactions locales 2.1 Création d’une transaction locale 2.1.1 Présentation Pour créer une transaction en ADO.net, on utilise une classe dérivant de la classe DbTransaction. Cette classe appartient à l’espace de nom System.Data.Common du CFMOTI/NTIC1/2TDI 8 FORMATRICE : SABRI AZIZA composant System.data.dll du Framework .NET. Cette classe expose les méthodes BeginTransaction, Commit et Rollback, essentielles dans la mise en œuvre des transactions. En fonction des classes d’accès aux données utilisées, vous utiliserez la classe suivante : - System.Data.Odbc.OdbcTransaction - System.Data.OleDb.OleDbTransaction - System.Data.OracleClient.OracleTransaction - System.Data.SqlClient.SqlTransaction La méthode BeginTransaction permet de débuter la transaction. La méthode Commit permet de valider les modifications effectuées par les requêtes exécutées au sein de la transaction. La méthode Rollback permet d’annuler ces modifications. 2.1.2 Mise en œuvre Dans l’exemple ci-dessous, nous utilisons une transaction, au sein de la quelle sont exécutées deux requêtes « Insert » sur une base de données SQL Server 2008. Nous utiliserons donc la classe SqlTransaction. Si les deux requêtes s’exécutant au sein de cette transaction sont exécutées avec succès : - Nous appliquons sur l’objet Transaction la méthode Commit, pour valider la transaction. - Dans une boîte de message, nous afficherons le message « Transaction validée ». Dans le cas où l’exécution d’une des deux requêtes échoue : - Nous appliquons sur l’objet Transaction la méthode Rollback, pour annuler la transaction. - Dans une boîte de message, nous affichons le message d’erreur. Dans notre cas, nous ajoutons un premier Stagiaire. Cet ajout s’exécute normalement. Le second provoque la levée d’une exception, car l’ajout d’un stagiaire avec un identifiant existant provoque une violation d’une contrainte de clé primaire. Ainsi, la transaction est annulée, et aucun ajout n’est effectué en base de données. CFMOTI/NTIC1/2TDI 9 FORMATRICE : SABRI AZIZA uploads/Finance/ transaction 1 .pdf

  • 18
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Nov 30, 2021
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 0.4504MB