Création de datasets de rapport à partir d'une base de données relationnelle SQL Server

Reporting Services fournit une extension pour le traitement des données prenant en charge la récupération de données de rapport à partir de bases de données relationnelles MicrosoftSQL 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 de récupérer les données lors du traitement du rapport, ainsi qu'une collection de champs. La définition de dataset est enregistrée dans la définition du rapport. Le volet Données du rapport affiche les définitions de dataset actuelles d'un rapport.

Pour définir un dataset, vous créez une requête utilisant le texte d'une requête Transact-SQL ou des appels de procédures stockées, ou bien vous choisissez une table et en récupérez 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 qui sont calculées au moment où la requête est exécutée. Les types de données des champs sont mappés à un sous-ensemble de types de données CLR (Common Language Runtime) à partir du .NET Framework. Pour plus d'informations, consultez Fonctionnement des datasets de rapport et Procédure : récupérer des données d'une source de données SQL Server.

Il existe deux concepteurs de requêtes pour les sources de données relationnelles : un concepteur de requêtes textuel et un concepteur de requêtes graphique. Le concepteur de requêtes textuel s'ouvre par défaut. Utilisez ce concepteur pour entrer 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 entrer des expressions basé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 plus d'informations, consultez Interface utilisateur du Concepteur de requêtes graphique, Interface utilisateur du Concepteur de requêtes textuel et Procédure : récupérer des données d'une source de données 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.

Spécification d'une requête

Pour une source de données SQL Server, vous pouvez utiliser le concepteur de requêtes textuel ou le concepteur de requêtes graphique pour vous aider à spécifier une requête pour votre dataset. Lorsque vous spécifiez la requête pour un nouveau dataset, le concepteur de requêtes graphique s'ouvre par défaut. Si la requête de dataset existante est trop complexe pour s'afficher dans le concepteur de requêtes graphique, le concepteur de requêtes textuel s'ouvre. Les deux concepteurs prennent en charge les types de requête suivants : Texte et StoredProcedure. Vous spécifiez le type de requête dans la boîte de dialogue Propriétés du dataset avant d'ouvrir le concepteur de requêtes.

Pour le type de requête Texte, si vous incluez des paramètres de requête dans le texte de requête, Reporting Services crée les paramètres de rapport correspondants. Pour le type de requête StoredProcedure, si vos procédures stockées disposent de paramètres d'entrée, Reporting Services crée les paramètres de rapport correspondants. Pour plus d'informations sur les paramètres de requête et les paramètres de rapport, consultez Utilisation de paramètres de requête plus loin dans cette rubrique.

Pour plus d'informations sur chaque concepteur de requêtes, consultez Interface utilisateur du Concepteur de requêtes textuel et Interface utilisateur du Concepteur de requêtes graphique.

Utilisation du type de requête Texte

Lorsque le concepteur de requêtes s'ouvre en mode Texte, vous pouvez taper des commandes Transact-SQL pour définir les données d'un dataset. 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 (!) dans la barre d'outils pour exécuter la requête et afficher les résultats dans le volet Résultats.

Vous pouvez également importer des requêtes existantes à partir d'un autre rapport ou de fichiers .sql.

Utilisation du type de requête StoredProcedure

Lorsque le concepteur de requêtes s'ouvre en mode StoredProcedure, vous avez déjà sélectionné la procédure stockée à utiliser lorsque vous avez spécifié StoredProcedure dans la boîte de dialogue Propriétés du dataset.

Si vous connaissez déjà le nom d'une autre procédure stockée que vous souhaitez exécuter, vous pouvez remplacer le texte existant et taper le nom de la nouvelle procédure stockée dans le volet de requête.

Reporting Services prend en charge des procédures stockées ne retournant qu'un seul jeu de données. 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 paramètres de requête

Pour le texte de requête qui contient des paramètres ou pour les procédures stockées dotées de paramètres d'entrée, le Concepteur de rapports crée automatiquement les paramètres de rapport correspondants dans la définition de rapport lorsque vous exécutez 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 entre les paramètres de rapport et les paramètres de requête à l'aide de la Boîte de dialogue Propriétés du dataset, Paramètres. Les requêtes comportant des paramètres liés à des paramètres de rapport ne nécessitent pas l'instruction DECLARE.

Bien que les paramètres de rapport soient automatiquement créés à partir des paramètres de requête, ils sont gérés séparément dans le volet Données du rapport.

[!REMARQUE]

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 pouvez supprimer ou modifier l'ordre des paramètres de rapport en utilisant les boutons de la barre d'outils du volet Données du rapport. Pour plus d'informations, consultez Ajout de paramètres à votre rapport.