The Command object formulates a request and passes it on to the data source. The command text can take many different syntactical forms, including text and XML. If results are returned, the Command object returns results as a DataReader object.
To create a Command class, implement IDbCommand. Implement the ExecuteReader method to return a result set as a DataReader object. The ExecuteReader method of your Command class should include an implementation that takes a CommandBehavior enumeration as an argument. If you deploy your data processing extension to Report Designer, provide an implementation that handles a SchemaOnly case in the ExecuteReader method. A schema-only implementation is used to supply Report Designer with a fields list. The DataReader object returned by the ExecuteReader method needs to contain type and name information for the fields, or columns, in your result set.
Optionally, your Command class can implement IDbCommandAnalysis. This interface enables an implementing class to analyze a query and return a list of parameters in the query. The functionality of the IDbCommandAnalysis interface is only used in Report Designer. When you implement IDbCommandAnalysis, you enable users of Report Designer to be prompted for parameters whenever a report is run in preview mode. In addition, you can view the parameters in the Parameters tab of the Data Set dialog.
You should not implement IDbCommandAnalysis if your custom data processing extension does not support parameters.
For a sample Command class implementation, see SQL Server Reporting Services Product Samples.