Partager via


Exemple ResultSet

Mis à jour : 17 juillet 2006

Il est parfois utile d'être en mesure d'exécuter des commandes tout en lisant les résultats d'une requête, sans ouvrir de nouvelle connexion ni charger tous les résultats en mémoire. La fonctionnalité MARS (Multiple Active Result Set) d'ADO .NET 2.0 est une technologie qui vous permet de le faire. À l'heure actuelle, cette technologie n'est pas implémentée pour le fournisseur de processus interne employé dans la programmation côté serveur. Pour contourner cette limitation, il est possible d'utiliser des curseurs côté serveur. Cet exemple montre comment utiliser les curseurs côté serveur afin de pallier l'absence de prise en charge de MARS dans la programmation côté serveur.

ms160831.note(fr-fr,SQL.90).gifRemarque :
L'utilisation de curseurs côté serveur est coûteuse en termes de ressources du serveur et peut parfois empêcher l'optimiseur de requête de Microsoft SQL Server d'améliorer les performances de vos requêtes. Par conséquent, il se peut que vous ayez intérêt à récrire votre code afin d'utiliser des jointures dans tous les cas où il est possible de le faire.

L'API pour cette classe est semblable à un lecteur de données, excepté que vous pouvez vous déplacer en avant ou en arrière dans l'ensemble de résultats et que d'autres commandes peuvent être exécutées sur la connexion même tandis que vous ouvrez l'ensemble de résultats.

Cette implémentation est hautement simplifiée afin de faciliter la compréhension de l'exemple. Une mise en œuvre plus efficace consisterait à extraire plusieurs lignes pour éviter un parcours complet de la base de données pour chaque ligne extraite.

L'utilisation de cette classe présente un avantage très important pour la programmation côté serveur dans la mesure où elle aboutit à un encombrement mémoire nettement inférieur à celui occasionné par le remplissage d'un dataset avec tous les résultats d'une requête.

Cet exemple démontre également l'utilisation de l'attribut d'autorisation des appelants partiellement approuvés visant à indiquer que l'assembly ResultSet est une bibliothèque que vous pouvez appeler en toute sécurité à partir d'autres assemblys. Cette approche est un peu plus complexe mais beaucoup plus sûre que d'inscrire l'assembly appelant avec l'autorisation unsafe. Elle est plus sûre parce qu'en inscrivant l'assemby appelant en tant que safe, vous affectez de manière limitée les ressources en dehors du serveur et éviter d'endommager l'intégrité de ce dernier.

Répertoire d'installation :

lecteur:\Program Files\Microsoft SQL Server\90\Samples\

Engine\Programmability\CLR\ResultSet\

Scénario

Jean est développeur chez Adventure Works Cycles. Il doit écrire un logiciel qui lit des données et effectue d'autres actions avant que la totalité des données ne soient retournées par sa requête côté serveur.

Langages

Transact-SQL, Visual C# et Visual Basic.

Fonctionnalités

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

Domaine d'application Fonctionnalités

Général

CLR, curseurs côté serveur, 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 obtenir SQL Server Express gratuitement à partir du site Web SQL Server 2005 Express Edition Documentation et exemples.
  • 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. Pour plus d'informations, 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.

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

    ms160831.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 ResultSet

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

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

  2. Vérifiez que la base de données AdventureWorks est installée.

  3. Si vous n'avez pas installé les exemples du moteur de base de données SQL Server à l'emplacement par défaut, modifiez le chemin d'accès dans la partie CREATE ASSEMBLY du script qui se trouve dans Scripts\InstallCS.sql de façon à désigner l'emplacement où vous avez installé ces exemples.

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

  5. Ouvrez le fichier scripts\installCS.sql ou scripts\installVB.sql, selon que vous avez compilé le projet Visual C# ou Visual Basic, dans SQL Server Management Studio. Exécutez le script contenu dans le fichier ou exécutez une commande semblable à la suivante dans une fenêtre d'invite de commandes :

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

Exécution de l'exemple

Pour exécuter l'exemple ResultSet

  1. Ouvrez le fichier scripts\test.sql dans Management Studio et exécutez le script qu'il contient. Vous pouvez aussi exécuter 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 ResultSet

  1. Ouvrez le fichier scripts\cleanup.sql dans SQL Server Management Studio et exécutez le script que contient le fichier. Vous pouvez aussi exécuter la commande suivante dans une fenêtre d'invite de commandes :

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

Commentaires

Pour que cet exemple fonctionne correctement, le CLR pour SQL Server 2005 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.

Voir aussi

Autres ressources

Allowing Partially Trusted Callers

Aide et Informations

Assistance sur SQL Server 2005

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.

17 juillet 2006

Nouveau contenu
  • Ajout de contenu décrivant les problèmes de sécurité.