Définition de datasets de rapport pour une base de données relationnelle SQL Server

Mis à jour : 14 avril 2006

Reporting Services comprend une extension de traitement des données prenant en charge l'extraction de données de rapport à partir de bases de données relationnelles Microsoft SQL Server. Cette extension de traitement des données permet d'extraire des données de tables de données relationnelles, de vues, de procédures stockées et d'autres structures de données définies dans la source de données sous-jacente. Après vous être connecté à une source de données, vous pouvez créer un dataset de rapport qui définit les données que vous cherchez à exploiter depuis cette source de données de votre rapport. Un dataset Reporting Services comporte une source de données, une requête chargée d'extraire les données lors du traitement du rapport et une collection de champs. La définition de dataset est enregistrée dans la définition du rapport. La fenêtre Datasets affiche les définitions de dataset actuelles d'un rapport.

Pour définir un dataset, vous devez créer une requête utilisant le texte d'une requête Transact-SQL ou des appels de procédures stockées, ou bien choisir une table et en extraire toutes les données. La collection de champs d'un dataset est créée automatiquement à partir de la requête. Vous pouvez modifier les champs ou ajouter des champs calculés. Les champs calculés disposent de valeurs basées sur des expressions et évaluées au moment où la requête est exécutée. De même, il vous est possible de créer des filtres pour limiter les données à la source avant qu'elles ne soient transmises à un rapport. Pour savoir comment définir un dataset, consultez Rubriques Procédures relatives aux données de rapport.

Il existe deux Concepteurs de requêtes pour les sources de données relationnelles : un Concepteur générique de requêtes et un Concepteur de requêtes graphique. Le Concepteur générique de requêtes s'ouvre par défaut. Utilisez ce Concepteur pour saisir directement du texte Transact-SQL, coller du texte de requête depuis une autre source, entrer des requêtes complexes impossibles à créer à l'aide du Concepteur de requêtes graphique ou pour saisir des expressions fondées sur des requêtes. Faites appel au Concepteur de requêtes graphique pour parcourir les métadonnées de la source de données et concevoir de manière interactive une requête ou afficher une liste de procédures stockées ou de tables dans la source de données.

Pour ouvrir les Concepteurs de requêtes dans le Concepteur de rapports, sélectionnez l'onglet Données. Pour passer d'un Concepteur de requêtes à l'autre, cliquez sur le bouton bascule Concepteur générique de requêtes (Icône du bouton du concepteur générique de requêtes) dans la barre d'outils en mode Données. Pour plus d'informations et d'exemples, consultez Interface utilisateur du Concepteur de requêtes SQL Server.

Après avoir défini une requête, vous pouvez également préciser des propriétés, telles que Timeout et CaseSensitivity, puis définir les paramètres de rapport chargés de transmettre des valeurs aux paramètres de requête. Un ensemble de résultats s'affiche à partir de la source de données lorsque vous exécutez la requête. Les colonnes qui apparaissent dans cet ensemble correspondent aux champs du dataset. Une fois le rapport traité, les éléments de rapport liés aux champs du dataset affichent les données extraites ou calculées. Un rapport traite uniquement le premier ensemble de résultats extrait par une requête.

Les Concepteurs de requêtes utilisés dans le cadre des données relationnelles présentent les trois types de commandes suivants :

  • Le type Text accepte les instructions Transact-SQL.
  • Le type StoredProcedure accepte les appels aux procédures stockées de la source de données. Ce type ne prend pas en charge les paramètres de sortie.
  • Le type TableDirect accepte le nom d'une table de la source de données et retourne toutes les colonnes de la table. Tous les fournisseurs de données ne prennent pas en charge le type TableDirect.

Utilisation de texte de requête

Vous pouvez utiliser Transact-SQL pour définir les données d'un dataset. Pour cela, définissez le type de commande du dataset à Text, puis tapez le texte Transact-SQL directement dans le volet SQL.

Par exemple, la requête Transact-SQL suivante sélectionne tous les noms de tous les employés.

SELECT FirstName, LastName
FROM   HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID

Cliquez sur le bouton Exécuter de la barre d'outils pour exécuter la requête et afficher les résultats dans le volet Résultats.

Du fait que ce type de commande accepte les instructions Transact-SQL, vous pouvez également y recourir pour exécuter une procédure stockée. Par exemple, l'instruction SQL suivante appelle la procédure stockée uspGetEmployeeManagers de la base de données AdventureWorks.

EXEC uspGetEmployeeManagers '1'

Utilisation des procédures stockées

Vous pouvez recourir à des procédures stockées pour définir les données d'un dataset. Pour cela, vous pouvez soit exécuter la procédure stockée à partir du volet Requête, soit définir le type de commande du dataset à StoredProcedure et le sélectionner dans une liste déroulante. Si vous travaillez avec le Concepteur de requêtes graphique, cliquez sur la liste déroulante Type de commande et consultez les procédures stockées disponibles dans la source de données. Si vous opérez à partir du Concepteur générique de requêtes et connaissez déjà le nom de la procédure stockée à exécuter, entrez son nom dans le volet Requête.

Reporting Services prend en charge des procédures stockées retournant un seul dataset. Si une procédure stockée retourne plusieurs ensembles de résultats, seul le premier est utilisé.

Si une procédure stockée possède un paramètre doté d'une valeur par défaut, vous pouvez accéder à cette dernière dans Reporting Services en utilisant le mot clé DEFAULT en tant que valeur pour le paramètre. Si le paramètre de requête est lié à un paramètre de rapport, l'utilisateur peut taper ou sélectionner le mot DEFAULT dans la zone d'entrée pour le paramètre de rapport. Pour plus d'informations, consultez Procédures stockées (moteur de base de données).

Utilisation de TableDirect

Vous pouvez facilement retourner l'ensemble des colonnes d'une table unique pour définir les données d'un dataset. Pour cela, définissez le type de commande à TableDirect et sélectionnez une table dans la liste déroulante. Si la table dispose d'un schéma dans la source de données, vérifiez que le schéma apparaît dans le nom de la table. Sinon, tapez-le.

Par exemple, entrez la commande suivante dans le volet Requête avec le type de commande TableDirect. Cette commande extrait toutes les données de la table Person.Contact pour la base de données AdventureWorks.

Person.Contact

Cliquez sur le bouton Exécuter de la barre d'outils pour exécuter la commande et afficher les résultats dans le volet Résultats.

ms159260.note(fr-fr,SQL.90).gifRemarque :
Le type de source de données Microsoft SQL Server ne prend pas en charge TableDirect. Pour utiliser ce type, sélectionnez le type de source de données OLE DB, puis le fournisseur Microsoft OLE DB pour SQL Server.

Utilisation de paramètres de requête

Si votre requête contient des paramètres, le Concepteur de rapports crée automatiquement les paramètres de rapport correspondants dans la définition de ce rapport lorsque vous tapez la requête. Lors de l'exécution du rapport, les valeurs des paramètres de rapport sont passées aux paramètres de requête. Par exemple, la requête SQL suivante crée un paramètre de rapport nommé EmpID :

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = @EmpID

Vous pouvez gérer la relation qui unit les paramètres de rapport et les paramètres de requête à l'aide de l'onglet Paramètres de la boîte de dialogue Dataset. Les requêtes comportant des paramètres liés à des paramètres de rapport ne nécessitent pas l'instruction DECLARE.

Bien que des paramètres de rapport soient automatiquement créés à partir des paramètres de requête, ils sont gérés séparément en mode Mise en page du rapport

ms159260.note(fr-fr,SQL.90).gifRemarque :
Si vous renommez ou supprimez un paramètre de requête, le paramètre de rapport correspondant n'est pas renommé ou supprimé pour autant. Vous devez alors procéder manuellement à l'aide de la boîte de dialogue Paramètres du rapport. Pour plus d'informations, consultez Utilisation de paramètres dans Reporting Services.

Pour créer un dataset

  1. Dans la liste déroulante Dataset de l'onglet Données, sélectionnez <Nouveau dataset>.

  2. Dans la liste déroulante Source de données de la boîte de dialogue Dataset, sélectionnez Nouvelle source de données.

  3. Dans la liste déroulante Type de la boîte de dialogue Source de données, sélectionnez Microsoft SQL Server.

  4. Spécifiez une chaîne de connexion fonctionnant avec votre source de données SQL Server.
    Contactez l'administrateur de votre base de données pour obtenir les informations de connexion. L'exemple de chaîne de connexion suivant spécifie la base de données exemple AdventureWorks sur le client local.

    Data Source=localhost;Initial Catalog=AdventureWorks
    
  5. Définissez les informations d'identification de la base de données dans l'onglet Informations d'identification de la boîte de dialogue Source de données.

  6. Cliquez sur OK.

Pour plus d'informations, consultez Connexion à une source de données.

Voir aussi

Tâches

Procédure : créer un dataset (Concepteur de rapports)

Concepts

Définition des datasets de rapports
Outils de conception de requête dans Reporting Services
Connexion à une source de données

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Nouveau contenu :
  • TableDirect.
  • Rubrique consacrée à la création d'un dataset.
Contenu modifié :