数据集的SSRS查询执行失败

时间:2012-06-01 08:41:36

标签: sql-server sql-server-2008 reporting-services ssrs-2008

刚刚将我的项目部署到我的报告服务器上。

我有多个引用该服务器上的数据库的数据集。

当我尝试进入任何报告部分时,我收到此消息:

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 

有人可以帮忙吗?

17 个答案:

答案 0 :(得分:10)

我启用了远程错误来查明问题。

我发现特定数据集(我的一个观点)中的列正在抛出错误。

因此,使用“SQL Delta”工具,我将数据库的开发版本与报表服务器上的实时版本进行了比较。我注意到其中一个视图在开发服务器上有一个额外的列,而不是db的实时版本。

SQL Delta生成了我需要运行的脚本来更新我的实时数据库上的视图。

我运行了这个脚本,重新运行了报告,一切正常。

答案 1 :(得分:8)

我遇到了类似的错误消息。我能够在不启用远程错误的情况下修复它。

在Report Builder 3.0中,当我使用运行按钮运行报告时,出现错误提示,说

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

按详细信息按钮给了我一个文本框,在那里我看到了这个文字:

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)

我感到困惑和沮丧,因为我的报告没有名为“DataSet1”的数据集。我甚至在文本编辑器中打开了.rdl文件。过了一会儿,我注意到下面的文本框中有更多的文字,我可以阅读。完整的错误消息是:

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)

有一个名为“CustomerDetailsDataSet”的共享数据集。我在SQL Server Management Studio中打开了查询(这是在文本模式下输入的完整SQL查询),并在那里运行它。我收到的错误消息明确指向某个表,我已经使用的列已经重命名和更改。

从那时起,可以直接修改我的查询,使其与新列一起使用,然后将该修改粘贴到共享数据集“CustomerDetailsDataSet”中,然后在报表生成器中轻推报表以识别更改为共享数据集。

完成此修复后,我的报告不再触发此错误。

答案 2 :(得分:4)

我遇到了同样的问题,它与安全性没有被授予部分表有关。检查您的用户是否可以访问报告使用的数据库/表/视图/函数等。

答案 3 :(得分:3)

我刚刚处理过同样的问题。确保您的查询列出了完整的源名称,没有使用快捷方式。 Visual Studio可以识别快捷方式,但您的报告服务应用程序可能无法识别您的数据应来自哪些表。希望有所帮助。

答案 4 :(得分:3)

像这里的许多其他人一样,我也有同样的错误。在我的情况下,这是因为它使用的存储过程拒绝执行权限。当与数据源关联的用户被授予该权限时,它已得到解决。

答案 5 :(得分:3)

我有类似的问题显示错误

  

有关此错误的详细信息,请导航到报表服务器   本地服务器计算机,或启用远程错误查询执行   数据集“PrintInvoice”失败。

解决方案: 1)在某些情况下,错误可能与数据集有关,您可以随时通过转到数据集属性并选择“查询设计器”并尝试“运行”来检查数据集是否填充了您期望的确切数据,如果可以成功能够拉出您期望的字段,然后您可以确定数据集没有任何问题,这将我们带到下一个解决方案。

2)即使错误消息显示“查询数据集执行失败”,另一个可能的机会是数据源连接,请确保已连接到具有所需表的正确数据源,并且您有权访问那个数据源。

答案 6 :(得分:2)

在我的情况下,我为数据集创建了一个新的SSRS报告和新的存储过程。我忘了将存储过程添加到有权执行它的数据库角色。一旦我用EXECUTE将权限添加到SQL数据库角色,一切都很好!

用户遇到的错误消息是“客户端呈现期间发生错误。报告处理期间发生错误(rsProcessingAborted)。数据集”DataSet1“的查询执行失败。 (rsErrorExecutingCommand)有关更多信息......“

答案 7 :(得分:2)

我的解决方案来自GShenanigan

  

您需要查看SSRS服务器上的日志文件以获取更多详细信息。他们将在某个地方:“C:\ Program Files(x86)\ Microsoft SQL Server \ MSRS10_50.DEV \ Reporting Services \ LogFiles \”

我能够在视图引用的数据库表上找到权限问题,该数据库表与视图所在的数据库不同。我一直专注于视图数据库的权限,因此这有助于确定错误的位置。

答案 8 :(得分:1)

BIGHAP:这个问题的简单工作。

在使用SharePoint列表作为DataSource时遇到了同样的问题,并阅读上面的博客非常有帮助。我在Visual Studio中对DataSource和Data对象名称以及查询字段进行了更改,并且在Visual Studio中进行了查询。我能够将报告部署到SharePoint,但当我尝试打开它时,我收到了同样的错误。

我猜测问题是我需要将DataSource和DataSet重新部署到SharePoint,以便渲染工具中的更改全部同步。

我将DataSource,DataSet和Report重新部署到sharePoint并且工作正常。 正如其中一篇博客所述,虽然visual studio允许我在数据集和数据源中进行的更改,但是如果您没有将visual studio设置为在部署报表时自动重新部署数据源和数据集(这可能很危险,因为这会影响其他共享这些对象的报告)可能会发生此错误。

因此,当然修复是在这种情况下,您必须重新部署数据源,数据集和报告以解决问题。

答案 9 :(得分:1)

我也遇到了同样的问题 - 我在下面检查了解决这个问题的事情,

  • 如果您最近在数据源中更改了指向数据库名称 然后首先检查该报告的所有存储过程是否存在 在已更改的数据库上。

  • 如果主报告上有多个子报告,请确保每个报告 报告单独运行。

  • 同时检查安全面板 - 用户必须有权访问数据库/ 该报告的表格/观点/功能。

有时,我们还需要检查dataset1 - 存储过程。好像您尝试使用user1显示报告,如果此用户没有提供access(rights)数据库的(dataset1 database),那么它将抛出与上面相同的错误,因此必须检查用户可以访问SQL Server中的dbreader

此外,如果该存储过程包含一些其他数据库(Database2),如

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

然后用户也必须具有该数据库的访问权限。

注意:您可以查看此路径上的日志文件以获取更多详细信息,

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

答案 10 :(得分:1)

我也遇到了一个非常类似的错误消息问题。我的问题是无法连接数据库。在我们的示例中,我们有镜像数据库,连接字符串未指定故障转移合作伙伴。因此,当数据库无法连接时,它从未进入镜像并抛出此错误。一旦我在数据源的连接字符串中指定了故障转移合作伙伴,它就解决了问题。

答案 11 :(得分:1)

非常感谢我找到了这篇伟大的帖子。至于我的情况,执行存储过程的用户没有Option[B]权限。解决方案是通过将以下代码添加到存储过程的末尾来为存储过程中的用户授予EXECUTE权限。

EXECUTE

答案 12 :(得分:1)

我收到同样的错误,但这有效并解决了我的问题

如果报表已连接到Analysis服务器,则在分析服务器模型中向用户(正在访问报表服务器以查看报表的用户)提供所需的权限。 为此,在模型或多维数据集的角色中添加用户,并将模型部署到分析服务器。

答案 13 :(得分:1)

使用SSRS,Report Builder 3.0,MSSQL 2008和查询Oracle 11G数据库, 我发现oracle存储过程运行良好,产生了一致的结果,没有错误。当我尝试将数据导入SSRS时,我收到了OP查询中列出的错误。我发现只有在删除参数时才加载和显示数据(不是一个好主意)。   在进一步检查时,我发现在数据集属性>参数下,我将开始日期设置为parameterName P_Start,将参数值设置为@P_Start。

将参数值添加为[@P_Start]可以清除问题,并且数据加载良好,参数就位。

答案 14 :(得分:1)

此问题是由孤立的SQL登录引起的。我运行了我最喜欢的sp_fixusers脚本,错误已解决。上面查看日志的建议很好......它引导我回答。

答案 15 :(得分:1)

这可能是您的视图或存储过程的权限问题

答案 16 :(得分:0)

除了上述答案外,还可能是由于缺少 SQL存储过程 SQL函数所致。例如,这可能是由于功能未从非生产区域迁移到生产(生产)区域。