Partager via


Readme_MARS

Mis à jour : 17 juillet 2006

Cet exemple montre comment utiliser la fonctionnalité MARS (Multiple Active Result Set). MARS vous permet d'exécuter plusieurs commandes sur la même connexion, même s'il est possible que les résultats de l'exécution d'une ou de plusieurs de ces commandes ne soient pas encore tous retournés au client.

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.

Emplacement par défaut : lecteur:\Program Files\Microsoft SQL Server\90\Samples\Engine\

Data Access\ADO\MARS

Scénario

AdventureWorks Cycles souhaite augmenter le coût standard et le prix de vente de ses bicyclettes les plus vendues à la suite de la hausse des coûts de peinture. L'augmentation de prix variera selon la couleur de la peinture.

Langages

Transact-SQL, Visual C# et Visual Basic.

Fonctionnalités

L'exemple MARS utilise les fonctionnalités suivantes de SQL Server 2005 et de Microsoft .NET Framework version 2.0 :

Domaine d'application Fonctionnalités

Général

MARS, ADO.NET 2.0, procédures stockées Transact-SQL

Configuration requise

Avant d'exécuter cet exemple, vérifiez que le logiciel suivant est installé :

  • SQL Server 2005 ou SQL Server 2005 Express Edition (SQL Server Express). Vous pouvez télécharger SQL Server Express à partir du site Web des exemples et téléchargements SQL Server.
  • Base de données AdventureWorks fournie avec SQL Server 2005 et également disponible sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
  • Les exemples du moteur de base de données SQL Server 2005. Ces exemples accompagnent SQL Server 2005. Vous pouvez télécharger la dernière version des exemples sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
  • Le Kit de développement .NET Framework SDK 2.0 ou Microsoft Visual Studio 2005. Vous pouvez obtenir gratuitement le Kit de développement .NET Framework SDK. Consultez Installation du SDK .NET Framework.

Génération de l'exemple

Si vous n'avez pas encore créé un fichier de clé de nom fort, utilisez la procédure suivante pour générer ce fichier.

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

  1. Ouvrez une invite de commandes Microsoft Visual Studio 2005. 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.

    -- Ou --

    Ouvrez une invite de commandes Microsoft .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. Utilisez la commande CD (changer de répertoire) pour remplacer le dossier actif dans la fenêtre de l'invite de commandes par le dossier dans lequel les exemples sont installés.

    ms160937.note(fr-fr,SQL.90).gifRemarque :
    Pour déterminer le dossier dans lequel se trouvent les exemples, cliquez sur le bouton Démarrer, pointez successivement sur Tous les programmes, sur Microsoft SQL Server 2005 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 <lecteur_système>:\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 SampleKey.snk

    ms160937.note(fr-fr,SQL.90).gifImportant :
    Pour plus d'informations sur la paire de clés de nom fort, consultez l'article de sécurité concernant les noms forts et la sécurité dans .NET Framework, dans le Centre de développement .NET sur MSDN.

Pour générer l'exemple, procédez comme suit :

Pour générer l'exemple

  1. Compilez l'exemple à l'aide de Visual Studio et du fichier situé dans le répertoire CS, ou utilisez la ligne de commande MSBuild suivante dans une fenêtre d'invite de commandes .NET Framework ou Microsoft Visual Studio 2005 :

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

Exécution de l'exemple

Pour exécuter l'exemple, procédez comme suit :

Pour exécuter l'exemple

  1. Ouvrez le script scripts\install.sql à l'aide de SQL Server Management Studio. Exécutez le contenu de ce fichier, ou exécutez la commande suivante dans une fenêtre d'invite de commandes :

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

  2. Dans une fenêtre d'invite de commandes, recherchez le répertoire CS\MARS\bin\debug et exécutez la commande suivante :

    mars

Suppression de l'exemple

Pour réinitialiser les données modifiées par cet exemple et supprimer l'exemple, procédez comme suit :

Pour supprimer l'exemple

  1. Ouvrez le script Scripts\cleanup.sql à l'aide de Management Studio. Exécutez le contenu de ce fichier, ou exécutez la commande suivante dans une fenêtre d'invite de commandes :

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

Commentaires

Au lieu d'utiliser MARS, il faut toujours se demander s'il ne serait pas plus efficace d'utiliser des jointures (JOIN) dans une requête ou une mise à jour côté serveur. Supposons par exemple que vous ayez besoin de connaître le numéro de commande, le code client, le numéro de produit, la quantité commandée et le nombre total d'articles pour chaque enregistrement de détail de commande client pour le mois de mars 2004. Bien qu'il soit possible d'écrire cette requête avec MARS, il est plus efficace d'utiliser une commande JOIN sous la forme suivante :

SELECT SOH.SalesOrderID, SOH.CustomerID, SOD.ProductID, 
  SOD.OrderQty, SOD.LineTotal
FROM Sales.SalesOrderHeader as SOH
JOIN Sales.SalesOrderDetail as SOD 
  ON SOH.SalesOrderID = SOD.SalesOrderID
WHERE SOH.OrderDate >= CONVERT(datetime, '20040301') 
  AND SOH.OrderDate < CONVERT(datetime, '20040401')
ORDER BY SOH.SalesOrderID;

Historique des modifications

Version Historique

5 décembre 2005

Contenu modifié :
  • Modification des instructions concernant la génération d'un fichier de clé, y compris le nom et l'emplacement de ce fichier.