3

我正在使用 SQL Server 2008 R2 Reporting Services,使用 Report Builder 3.0 设计报表并通过报表管理器(http://host/Reports/而不是http://host/reportserver/)查看它们。

我以这种方式构建和访问了大量报告,从每小时刷新的数据库中读取数据。刷新过程需要几分钟,是我编写的一个简单的 ETL C# 脚本(针对每个表)删除所有匹配的行并插入新数据(在事务内)。这可能是我需要更改的过程的这一部分,所以我用 SQL Server 2008 R2 标记了这个问题。

我的问题是,每当导入和 SSRS 报告执行同时运行时,我都会收到 rsProcessingAborted 错误。如果底层数据在执行时发生变化,它看起来像处理中止。我的一份报告非常复杂,需要几分钟才能运行,所以我经常看到这个错误,而在其他报告中通常根本看不到它。

An error has occurred during report processing. (rsProcessingAborted)
Cannot read the next data row for the dataset xxx. (rsErrorReadingNextDataRow)

这些报告需要与不想看到错误的用户共享。有什么办法可以吗

  • 使我的导入脚本和 SSRS 执行“原子”,以便报告能够运行
  • 自定义报告管理器中显示的 rsProcessingAborted 错误,以便向用户显示一条消息,例如“正在刷新此报告背后的数据。请在 5 分钟后重试。” - 仍然很烦人,但比上面的错误更好......
4

1 回答 1

0

在您的报告中使用“NOLOCK”表格提示。

For Example:

SELECT [LastName] FROM [dbo].[AuditLog] WITH (NOLOCK)
于 2013-09-14T21:58:27.833 回答