web-dev-qa-db-fra.com

L'exécution de la requête SSRS a échoué pour l'ensemble de données

Je viens de déployer mon projet sur mon serveur de rapports.

J'ai plusieurs ensembles de données qui font référence à des vues qui existent sur la base de données sur ce serveur.

Lorsque j'essaie d'entrer dans une partie du rapport, je reçois ce message:

An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for dataset 'dataset1'. (rsErrorExecutingCommand)
For more information about this error navigate to the report server on the local server machine, or enable remote errors 

Quelqu'un peut-il aider?

21
JsonStatham

J'ai activé les erreurs à distance pour identifier le problème.

J'ai identifié qu'une colonne d'un ensemble de données particulier (l'un de mes points de vue) générait une erreur.

Ainsi, en utilisant un outil "SQL Delta", j'ai comparé la version de développement de la base de données avec la version en direct sur le serveur de rapports. J'ai remarqué que l'une des vues comportait une colonne supplémentaire sur le serveur de développement, mais pas sur la version en direct de la base de données.

SQL Delta a généré le script que je devais exécuter pour mettre à jour la vue sur ma base de données en direct.

J'ai exécuté ce script, relu le rapport, tout a fonctionné.

9
JsonStatham

J'ai rencontré un message d'erreur similaire. J'ai pu résoudre le problème sans activer les erreurs distantes. 

Dans le Générateur de rapports version 3.0, lorsque j'ai utilisé le bouton Exécuter pour exécuter le rapport, une alerte d'erreur est apparue, indiquant que

An error has occurred during report processing. (rsProcessingAborted)
[OK] [Details...]

En appuyant sur le bouton Détails, une boîte de texte contenant ce texte s’est affichée:

For more information about this error navigate to the report server
on the local server machine, or enable remote errors
----------------------------
Query execution failed for dataset 'DataSet1'. (rsErrorExecutingCommand)

J'étais confus et frustré, car mon rapport ne contenait pas de jeu de données nommé 'DataSet1'. J'ai même ouvert le fichier .rdl dans un éditeur de texte pour en être sûr. Après un moment, j'ai remarqué qu'il y avait plus de texte dans la zone de texte en dessous de ce que je pouvais lire. Le message d'erreur complet était:

For more information about this error navigate to the report server
on the local server machine, or enable remote errors
----------------------------
Query execution failed for dataset 'DataSet1'. (rsErrorExecutingCommand)

----------------------------
The execution failed for the shared data set 'CustomerDetailsDataSet'.  
(rsDataSetExecutionError)
----------------------------
An error has occurred during report processing. (rsProcessingAborted)

J'ai ai un ensemble de données partagé nommé 'CustomerDetailsDataSet'. J'ai ouvert la requête (une requête SQL complète entrée en mode texte) dans SQL Server Management Studio et je l'ai exécutée à cet endroit. J'ai reçu des messages d'erreur qui indiquaient clairement une certaine table, dans laquelle une colonne que j'avais utilisée avait été renommée et modifiée. 

À partir de là, il était facile de modifier ma requête afin qu'elle fonctionne avec la nouvelle colonne, puis de coller cette modification dans l'ensemble de données partagé 'CustomerDetailsDataSet', puis de déplacer le rapport dans le Générateur de rapports afin de reconnaître la modification apportée à l'ensemble de données partagé.

Après cette correction, mes rapports ne provoquaient plus cette erreur.

8
Jim DeLaHunt

J'ai rencontré le même problème, il était lié au fait que la sécurité n'était pas accordée à une partie des tables. Vérifiez que votre utilisateur a accès aux bases de données/tables/vues/fonctions, etc. utilisées par le rapport. 

4
user3715198

Je viens de traiter ce même problème. Assurez-vous que votre requête répertorie le nom complet de la source, sans raccourcis. Visual Studio peut reconnaître les raccourcis, mais votre application de services de rapport peut ne pas être en mesure de reconnaître les tables à partir desquelles vos données doivent provenir. J'espère que cela pourra aider. 

3
Dave

J'ai eu le même problème montrant l'erreur 

Pour plus d'informations sur cette erreur, accédez au serveur de rapports sur sur le serveur local, ou activez les erreurs distantes. Exécution de la requête a échoué pour le jeu de données 'PrintInvoice'.

Solution: 1) Dans certains cas, l’erreur peut concerner le jeu de données. Vous pouvez toujours vérifier si le jeu de données remplit les données exactes attendues en accédant aux propriétés du jeu de données, en choisissant "Concepteur de requêtes" et en cliquant sur "Exécuter". Si vous parvenez à extraire les champs que vous attendez, vous pouvez être sûr que le jeu de données ne pose aucun problème, ce qui nous amène à la solution suivante.

2) Même si le message d'erreur indique "Exécution échouée de la requête pour le jeu de données", la connexion à la source de données présente probablement des risques. Assurez-vous que vous êtes connecté à la source de données appropriée contenant les tables dont vous avez besoin et que vous disposez des autorisations nécessaires pour accéder à cette source de données. 

3
Sri Harsha

Comme beaucoup d'autres ici, j'ai eu la même erreur. Dans mon cas, c'est parce que l'autorisation d'exécution a été refusée sur une procédure stockée utilisée. Il a été résolu lorsque l'utilisateur associé à la source de données a reçu cette autorisation.

3
SteveC

Dans ma situation, j'ai créé un nouveau rapport SSRS et une nouvelle procédure stockée pour l'ensemble de données. J'ai oublié d'ajouter la procédure stockée au rôle de base de données qui était autorisé à l'exécuter. Une fois que j'ai ajouté les autorisations au rôle de base de données SQL avec EXECUTE, tout allait bien!

Le message d'erreur rencontré par l'utilisateur était "Une erreur s'est produite lors du rendu du client. Une erreur s'est produite lors du traitement du rapport (rsProcessingAborted). L'exécution de la requête a échoué pour l'ensemble de données" DataSet1 '. (rsErrorExecutingCommand) Pour plus d'informations ... "

2
Doreen

La solution pour moi est venue de GShenanigan :

Vous aurez besoin de consulter vos fichiers journaux sur le serveur SSRS pour plus de détails. Ils seront quelque part comme: "C:\Program Files (x86)\Microsoft SQL Server\MSRS10_50.DEV\Reporting Services\LogFiles \"

J'ai pu trouver un problème d'autorisations sur une table de base de données référencée par la vue qui n'était pas la même que celle où se trouvait la vue. J'avais concentré mon attention sur les autorisations sur la base de données de la vue, ce qui a permis de localiser le lieu de l'erreur.

2
casilvis

Ce problème était dû à une connexion SQL orpheline. J'ai exécuté mon script favori sp_fixusers et l'erreur a été résolue. La suggestion ci-dessus de regarder les journaux était bonne… et cela m’a amené à ma réponse.

1
Lee

BIGHAP: UN TRAVAIL SIMPLE POUR CE NUMÉRO.

J'ai rencontré le même problème lorsque je travaillais avec des listes SharePoint en tant que DataSource, et j'ai lu les blogs ci-dessus, qui ont été très utiles. J'avais apporté des modifications aux noms d'objet DataSource et Data et aux champs de requête dans Visual Studio, et la requête fonctionnait dans Visual Studio. J'ai pu déployer le rapport sur SharePoint, mais lorsque j'ai essayé de l'ouvrir, j'ai reçu la même erreur. 

J'ai deviné que le problème était que je devais redéployer à la fois DataSource et DataSet sur SharePoint afin que les modifications apportées aux outils de rendu soient toutes synchronisées. 

J'ai redéployé DataSource, DataSet et le rapport pour sharePoint et cela a fonctionné. Comme l’a déclaré l’un des blogs, bien que visual studio autorise les modifications que j’ai apportées à l’ensemble de données et à la source de données, si vous n’avez pas configuré Visual Studio pour redéployer peut affecter d’autres rapports partageant ces objets), cette erreur peut se produire. 

Donc, bien sûr, le correctif est que dans ce cas, vous devez redéployer la source de données, le jeu de données et le rapport pour résoudre le problème.

1
user4541411

Très reconnaissant, j'ai trouvé ce super post. En ce qui concerne mon cas, l'utilisateur qui exécute la procédure stockée ne disposait pas des autorisations EXECUTE. La solution consistait à accorder des autorisations EXECUTE à l'utilisateur de la procédure stockée en ajoutant le code ci-dessous à la fin de la procédure stockée.

GRANT EXECUTE ON dbo.StoredProcNameHere TO UsernameRunningreports
GO
1
zymos

J'ai également eu un problème très similaire avec un message d'erreur très similaire. Mon problème était que la base de données ne pouvait pas être connectée. Dans notre cas, nous avons mis en miroir des bases de données et la chaîne de connexion n'a pas spécifié le partenaire de basculement. Ainsi, lorsque la base de données n'a pas pu se connecter, elle n'est jamais passée au miroir et a généré cette erreur. Une fois que j'ai spécifié le partenaire de basculement dans la chaîne de connexion de ma source de données, le problème a été résolu.

1
bunggo

Je faisais également face au même problème - j'ai vérifié ci-dessous les solutions pour résoudre ce problème,

  • Si vous avez récemment changé de pointage nom de base de données dans source de données
    vérifie d’abord que toutes les procédures de stockage de ce rapport existent sur la base de données modifiée.

  • S'il y a plusieurs sous-rapports dans le rapport principal, assurez-vous que chaque rapport individuel fonctionne parfaitement.

  • Vérifiez également le panneau de sécurité - l'utilisateur doit avoir accès aux bases de données / Tables/vues/fonctions de ce rapport.

Parfois, nous devons également vérifier la procédure dataset1 - store. Comme si vous essayez d'afficher le rapport avec user1 et si cet utilisateur ne possède pas la access(rights) de la base de données (dataset1 database) fournie, la même erreur que celle décrite ci-dessus doit être vérifiée; vous devez donc vérifier que l'utilisateur a accès à dbreader dans SQL Server.

De même, si cette procédure de stockage contient une autre base de données (Database2) like 

Select * from XYZ inner join Database2..Table1 on ... where...

Ensuite, l'utilisateur doit également avoir accès à cette base de données. 

Remarque: vous pouvez consulter les fichiers journaux sur ce chemin pour plus de détails,

C:\Program Files\Microsoft SQL Server\MSRS11.SQLEXPRESS\Reporting Services
1
pedram

À l'aide de SSRS, Générateur de rapports version 3.0, MSSQL 2008 et la requête d'une base de données Oracle 11G, J'ai constaté que la procédure stockée Oracle fonctionnait correctement et produisait des résultats cohérents sans erreur. Lorsque j'ai essayé d'introduire les données dans SSRS, j'ai eu l'erreur indiquée dans la requête de OP. J'ai trouvé que les données chargées et affichées que si j'ai supprimé les paramètres (pas une bonne idée). Lors d'un examen plus approfondi, j'ai constaté que, sous Propriétés de l'ensemble de données> Paramètres, j'avais défini la date de début sur NomParamètre P_Start et le paramètre Valeur sur @P_Start.

L'ajout de la valeur du paramètre en tant que [@P_Start] a résolu le problème et les données se sont bien chargées avec les paramètres en place.

1
Joe

Cela pourrait être le problème d'autorisation pour votre procédure d'affichage ou de stockage

1
Kiran.Bakwad

En plus des réponses ci-dessus, cela pourrait être dû à l'absence de procédure stockée SQL ou fonction SQL . Par exemple, cela pourrait être dû au fait que la fonction ne migre pas d'une région non-prod vers la région de production (prod). 

0
JosephDoggie