Implémentation d'une classe DataReader pour une extension pour le 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. Le fait d'utiliser un objet DataReader améliore les performances de l'application : d'une part, les données sont récupérées dès qu'elles sont disponibles (plutôt que d'attendre le retour des résultats complets de la requête) et, d'autre part, une seule ligne à la fois est stockée en mémoire par défaut, réduisant ainsi la charge 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 le Concepteur de rapports, votre objet DataReader est utilisé pour récupérer une liste de champs ainsi que des informations de schéma sur le jeu de résultats. Pour cela, vous devez implémenter 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.