Partager via


Implémenter une classe DataReader pour une extension de traitement des données

L’objet DataReader permet à un client de récupérer un flux de données avant uniquement et en lecture seule à partir d’une source de données. Les résultats sont retournés à mesure que la requête s’exécute et sont stockés sur le client dans la mémoire tampon réseau jusqu’à ce que vous en fassiez la demande à l’aide de la méthode Read de la classe DataReader. Pour créer une classe DataReader, implémentez IDataReader et, éventuellement, IDataReaderExtension. L’utilisation d’un objet DataReader augmente les performances de l’application en récupérant les données dès qu’elles sont disponibles, plutôt que d’attendre que les résultats entiers de la requête soient retournés et (par défaut) en stockant une seule ligne à la fois en mémoire, ce qui réduit la surcharge système.

Après avoir créé une instance de votre classe Command, vous créez un objet DataReader en appelant Command.ExecuteReader pour récupérer des lignes de la source de données. L’implémentation de DataReader doit fournir deux fonctions de base : l’accès avant uniquement sur les jeux de résultats obtenus en exécutant une commande et l’accès aux types, noms et valeurs de colonne dans chaque ligne. Les clients utilisent la méthode Read de l’objet DataReader pour obtenir une ligne des résultats de la requête.

Dans Concepteur de rapports, votre objet DataReader est utilisé pour récupérer une liste de champs et d’informations de schéma sur le jeu de résultats. Cette récupération est effectuée en implémentant les méthodes GetName, GetValue, GetFieldType et GetOrdinal de l’interface IDataReader .

L'interface IDataReaderExtension vous permet de fournir des informations d'agrégation spécifiques à propos de votre jeu de résultats. Pour un exemple d’implémentation de la classe DataReader, consultez SQL Server Reporting Services Product Samples (Exemples Reporting Services pour le produit SQL Server).