Partager via


Exemple Readme_System.Transactions

Cet exemple fonctionne uniquement avec SQL Server 2005 et SQL Server 2008. Il ne fonctionnera pas avec les versions de SQL Server antérieures à SQL Server 2005.

L'exemple System.Transactions montre comment contrôler les transactions à l'aide des API managées situées dans l'espace de noms System.Transactions. La classe System.Transactions.TransactionScope est notamment utilisée pour établir la limite d'une transaction de sorte que les chiffres de stock ne soient pas modifiés tant que le stock n'est pas suffisant pour répondre à la demande et, si le stock est suffisant, que le transfert du stock d'un emplacement à un autre s'effectue de manière atomique. L'inscription automatique dans une transaction distribuée s'effectue en enregistrant les modifications apportées au stock dans une base de données d'audit stockée sur un serveur séparé.

Cet exemple doit être installé en deux parties sur deux ordinateurs physiques : un serveur d'exemples principal et un serveur d'audit.

Répertoire d'installation : C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\Transaction\

Les exemples SQL Server et les exemples de bases de données doivent être téléchargés et installés avant que vous ne puissiez les afficher ou les utiliser. Pour plus d'informations, consultez Considérations relatives à l'installation d'exemples de bases de données et d'exemples de code SQL Server.

Scénario

Jane travaille au service Développement de la société Adventure Works Cycles. Elle est chargée d'assurer le suivi des mouvements de stock d'un emplacement à un autre, dans une optique de cohérence des transactions, et de participer à l'audit de toutes les modifications de stock.

Langages

Transact-SQL, Visual C# et Visual Basic.

Fonctionnalités

L'exemple System.Transactions utilise les fonctionnalités suivantes de SQL Server.

Domaine d'application Fonctionnalités

Global

CLR (Common Language Runtime), Transactions, Transactions distribuées, ADO .NET, MSDTC

Configuration requise

Avant d'exécuter cet exemple, assurez-vous que les logiciels suivants sont installés sur votre ordinateur :

  • SQL Server ou SQL Server Express. Vous pouvez vous procurer gratuitement SQL Server Express à partir du site Web SQL Server Express Documentation and Samples (en anglais).
  • Base de données AdventureWorks qui est disponible sur le site Web du Centre pour les développeurs Microsoft SQL Server.
  • Exemples Moteur de base de données SQL Server qui sont disponibles sur le site Web du Centre pour les développeurs Microsoft SQL Server.
  • Kit de développement logiciel .NET Framework 2.0 (SDK) ou Microsoft Visual Studio 2005. Vous pouvez vous procurer gratuitement le Kit de développement logiciel .NET Framework (SDK). Consultez Installation de la documentation .NET Framework..
  • Microsoft Distributed Transaction Coordinator (MSDTC). MSDTC doit être configuré pour autoriser les connexions entrantes et sortantes des clients. Vous devez installer et configurer MSDTC sur les deux serveurs utilisés dans cet exemple. Pour plus d'informations, consultez la documentation des Services de composants.

Avant d'exécuter cet exemple, configurez les composants suivants :

  • Si le Pare-feu Windows est activé sur un des serveurs, configurez-le sur les deux serveurs pour autoriser les connexions SQL Server et MSDTC. Pour plus d'informations, consultez la documentation du Pare-feu Windows.
  • Utilisez l'outil Gestionnaire de configuration SQL Server pour activer TCP/IP ou l'accès aux canaux nommés pour SQL Server sur le serveur d'audit.

Génération de l'exemple

Si vous n'avez pas encore créé le fichier de clé de nom fort ExternalSampleKey.snk, vous devez le générer en suivant les instructions ci-après.

Pour générer un fichier de clé de nom fort

  1. Ouvrez une invite de commandes de Visual Studio 2005. Cliquez sur Démarrer, pointez successivement sur Tous les programmes, sur Microsoft Visual Studio 2005 et sur Outils Visual Studio, puis cliquez sur Invite de commandes de Visual Studio 2005.

    - ou -

    Ouvrez une invite de commandes du .NET Framework. Cliquez sur Démarrer, pointez sur Tous les programmes et sur Kit de développement Microsoft .NET Framework SDK 2.0, puis cliquez sur Invite de commandes du Kit de développement SDK.

  2. À l'invite de commandes, utilisez la commande CD (changer de répertoire) pour remplacer le dossier actif dans la fenêtre de l'invite par le dossier Samples.

    ms345266.note(fr-fr,SQL.100).gifRemarque :
    Pour déterminer le dossier dans lequel se trouvent les exemples, cliquez sur Démarrer, pointez successivement sur Tous les programmes, sur Microsoft SQL Server et sur Documentation et didacticiels, puis cliquez sur le répertoire Samples. Si l'emplacement d'installation par défaut a été utilisé, les exemples se trouvent dans C:\Program Files\Microsoft SQL Server\100\Samples\.

  3. À l'invite de commandes, exécutez la commande suivante pour générer le fichier de clé :

    sn -k ExternalSampleKey.snk

    ms345266.note(fr-fr,SQL.100).gifImportant :
    Pour plus d'informations sur la paire de clés avec nom fort, consultez « Security Briefs: Strong Names and Security in the .NET Framework » (en anglais) dans le Centre de Développement du .NET sur MSDN.

Pour générer l'exemple System.Transactions

  1. Modifiez le fichier CS\Transaction\InventoryMover.cs en changeant la valeur de la constante de chaîne auditConnectionString de sorte qu'elle indique le nom du serveur qui stockera les informations d'audit pour cet exemple. Ce serveur doit être un ordinateur physique différent de celui que vous utiliserez pour installer la partie principale de cet exemple. Configurez un compte de test avec l'authentification SQL Server sur le serveur d'audit, puis modifiez la constante de chaîne auditConnectionString de sorte qu'elle spécifie le nom d'utilisateur et le mot de passe que vous avez définis pour ce compte.

  2. Compilez l'exemple à l'aide de Visual Studio 2005 et de la solution Visual Studio fournie, ou à l'aide de MSBuild, lequel est inclus dans le Kit de développement .NET Framework SDK 2.0. À une invite de commandes, exécutez une commande présentant l'aspect suivant :

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\Transaction.sln

  3. Assurez-vous que la base de données AdventureWorks est installée.

  4. Si vous n'avez pas installé les exemples pour le moteur SQL Server à l'emplacement par défaut, modifiez le chemin d'accès dans la partie CREATE ASSEMBLY des scripts qui se trouvent dans les fichiers Scripts\InstallCS.sql et Scripts\InstallVB.sql de façon à désigner l'emplacement où vous avez installé ces exemples.

  5. Si vous n'êtes pas un administrateur de l'instance de SQL Server que vous utilisez, demandez à un administrateur de vous accorder l'autorisation CreateAssembly pour effectuer l'installation.

  6. Ouvrez le fichier scripts\installCS.sql ou scripts\installVB.sql, selon que vous avez compilé le projet Visual C# ou le projet Visual Basic, dans Management Studio. Exécutez le script contenu dans le fichier lorsque vous êtes connecté au serveur d'exemples principal, ou exécutez une commande présentant l'aspect suivant dans une fenêtre d'invite de commandes sur le serveur d'exemples principal :

    sqlcmd -E -I -i Scripts\InstallCS.sql

  7. Ouvrez le fichier scripts\installDB.sql dans Management Studio. Exécutez le script contenu dans le fichier lorsque vous êtes connecté au serveur d'audit, ou exécutez une commande présentant l'aspect suivant dans une fenêtre d'invite de commandes sur le serveur d'audit :

    sqlcmd -E -I -i Scripts\InstallDB.sql

Exécution de l'exemple

Pour exécuter l'exemple System.Transactions

  1. Ouvrez le fichier scripts\test.sql dans Management Studio. Exécutez le script contenu dans le fichier ou exécutez la commande suivante dans une fenêtre d'invite de commandes :

    sqlcmd -E -I -i Scripts\test.sql

Suppression de l'exemple

Pour supprimer l'exemple System.Transactions

  1. Ouvrez le fichier scripts\cleanup.sql dans Management Studio. Exécutez le script contenu dans le fichier situé sur le serveur d'exemples principal ou exécutez la commande suivante dans une fenêtre d'invite de commandes sur le serveur d'exemples principal :

    sqlcmd -E -I -i Scripts\cleanup.sql

  2. Ouvrez le fichier scripts\cleanup.sql dans Management Studio. Exécutez le script contenu dans le fichier situé sur le serveur d'audit ou exécutez la commande suivante dans une fenêtre d'invite de commandes sur le serveur d'audit :

    sqlcmd -E -I -i Scripts\cleanupDB.sql

Commentaires

Pour que cet exemple fonctionne correctement, le CLR pour SQL Server ou SQL Server Express doit être activé.

Les exemples sont fournis à titre éducatif uniquement. Ils ne sont pas destinés à être utilisés dans un environnement de production et n'ont pas été testés à cet usage. Microsoft ne fournit aucun support technique pour ces exemples. Les exemples d'applications et les assemblys ne doivent pas être utilisés avec votre base de données SQL Server de production ou votre serveur de rapports, ou y être connectés, sans l'autorisation de l'administrateur système.