IDataReaderExtension Interface


Updated: February 25, 2016

Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is used by SQL Server Reporting Services to retrieve aggregation-specific information about a result set.

Namespace:   Microsoft.ReportingServices.DataProcessing
Assemblies:   Microsoft.ReportingServices.Interfaces (in Microsoft.ReportingServices.Interfaces.dll)
  Microsoft.ReportingServices.SharePoint.UI.WebParts (in Microsoft.ReportingServices.SharePoint.UI.WebParts.dll)

public interface IDataReaderExtension : IDataReader, IDisposable


Gets the number of fields by which the data is aggregated.


Gets the number of fields in the data reader.(Inherited from IDataReader.)


Indicates whether the current row contains aggregate data.


(Inherited from IDisposable.)


Gets the Type information corresponding to the type of object that is returned from GetValue.(Inherited from IDataReader.)


Gets the name of the field to find.(Inherited from IDataReader.)


Return the index of the named field.(Inherited from IDataReader.)


Return the value of the specified field.(Inherited from IDataReader.)


Indicates whether the data is aggregated by the field with the given index.


Advances the IDataReader to the next record.(Inherited from IDataReader.)

The IDataReaderExtension interface enables you to implement an extension of the IDataReader interface, which you can use to provide a report server with aggregation information about your result set. For more information about DataReader classes, see Implementing a DataReader Class for a Data Processing Extension.

An application does not create an instance of the IDataReaderExtension interface directly, but creates an instance of a class that implements IDataReaderExtension.

Classes that implement IDataReaderExtension must also implement the required members, and typically define additional members to add provider-specific functionality. Because IDataReaderExtension inherits from IDataReaderExtension, you must also implement all of the IDataReaderExtension members as part of your DataReader class.

Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReaderExtension. However, the precise behavior is both provider and timing dependent.

Users do not create an instance of a DataReader class directly. Instead, they obtain the DataReader through the ExecuteReader method of the Command object. Therefore, you should mark DataReader constructors as internal.

Return to top