Partager via


Implémentation d'une classe Command pour une extension pour le traitement des données

L'objet Command formule une demande et la passe à la source de données. Le texte de la commande peut prendre de nombreuses formes syntaxiques, notamment texte et XML. Si des résultats sont retournés, l'objet Command les retourne sous la forme d'un objet DataReader.

Pour créer une classe Command, implémentez IDbCommand. Implémentez la méthode ExecuteReader pour retourner un jeu de résultats sous la forme d'un objet DataReader. La méthode ExecuteReader de votre classe Command doit inclure une implémentation qui utilise une énumération CommandBehavior comme argument. Si vous déployez votre extension pour le traitement des données sur le Concepteur de rapports, vous devez inclure une implémentation qui gère un cas SchemaOnly dans la méthode ExecuteReader. Une implémentation de type schéma uniquement est utilisée pour fournir une liste de champs au Concepteur de rapports. L'objet DataReader retourné par la méthode ExecuteReader doit contenir des informations de nom et de type pour les champs ou les colonnes de votre jeu de résultats.

Si vous le souhaitez, votre classe Command peut également implémenter IDbCommandAnalysis. Cette interface permet à une classe d'implémentation d'analyser une requête et de retourner une liste de paramètres dans la requête. Les fonctionnalités de l'interface IDbCommandAnalysis sont uniquement utilisées dans le Concepteur de rapports. Lorsque vous implémentez IDbCommandAnalysis, vous permettez aux utilisateurs du Concepteur de rapports d'être invité à fournir des paramètres dès qu'un rapport est exécuté en mode Aperçu. De plus, vous pouvez consulter les paramètres sous l'onglet Paramètres de la boîte de dialogue Jeu de données.

Notes

Vous ne devez pas implémenter IDbCommandAnalysis si votre extension personnalisée pour le traitement des données ne prend en charge aucun paramètre.

Pour un exemple d'implémentation de la classe Command, consultez SQL Server Reporting Services Product Samples.