Implementar una clase DataReader para una extensión de procesamiento de datos

El objeto DataReader permite a un cliente recuperar de un origen de datos una secuencia de datos de solo lectura y solo avance. Los resultados se devuelven a medida que la consulta se ejecuta y se almacenan en el búfer de red en el cliente hasta que les solicita que usen el método Read de la clase DataReader. Para crear una clase DataReader, implemente IDataReader y, si lo desea, implemente IDataReaderExtension. Al utilizar un objeto DataReader, se aumenta el rendimiento de la aplicación tanto al recuperar los datos en cuanto estén disponibles, en lugar de esperar a que se devuelvan los resultados completos de la consulta, como (de forma predeterminada) al almacenar solo una fila a la vez en la memoria, con lo que se reduce la sobrecarga del sistema.

Después de crear una instancia de la clase Command, crea un objeto DataReader llamando a Command.ExecuteReader para recuperar las filas del origen de datos. La implementación de DataReader debe proporcionar dos capacidades básicas: el acceso de solo avance sobre los conjuntos de resultados obtenidos al ejecutar un comando y el acceso a los tipos de columna, los nombres y los valores dentro de cada fila. Los clientes utilizan el método Read del objeto DataReader para obtener una fila de los resultados de la consulta.

En el Diseñador de informes, el objeto DataReader se utiliza para recuperar una lista de campos así como información del esquema sobre el conjunto de resultados. Esto se logra implementando los métodos GetName, GetValue, GetOrdinal y GetFieldType de la interfaz IDataReader.

La interfaz IDataReaderExtension le permite proporcionar información de agregaciones concretas acerca del conjunto de resultados. Para obtener un ejemplo de implementación de la clase DataReader, vea Muestras de productos de SQL Server Reporting Services.