3

SQL Server 2008 R2 Reporting Services を使用しており、レポート ビルダー 3.0 でレポートを設計し、レポート マネージャー (http://host/Reports/ではなくhttp://host/reportserver/) で表示しています。

この方法で多数のレポートを作成してアクセスし、1 時間ごとに更新されるデータベースからデータを読み取ります。更新プロセスには数分かかりますが、(テーブルごとに) 一致するすべての行を削除し、新しいデータを (トランザクション内に) 挿入するために私が書いた単純な ETL C# スクリプトです。プロセスのこの部分を変更する必要があるかもしれないので、この質問に SQL Server 2008 R2 のタグを付けました。

私の問題は、インポートと SSRS レポートの実行が同時に実行されるたびに、rsProcessingAborted エラーが発生することです。実行中に基になるデータが変更されると、処理が中止されるようです。私のレポートの 1 つは非常に複雑で、実行に数分かかるため、このエラーが頻繁に表示され、通常、他のレポートではまったく表示されません。

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

これらのレポートは、エラーを表示したくないユーザーと共有する必要があります。できる方法はありますか

  • レポートをとにかく実行できるように、インポート スクリプトと SSRS 実行を「アトミック」にします。
  • Report Manager に表示される rsProcessingAborted エラーをカスタマイズして、「このレポートの背後にあるデータを更新しています。5 分後にもう一度お試しください。」のようなメッセージがユーザーに表示されるようにします。- まだいらいらしますが、上記のエラーよりはましです...
4

1 に答える 1

0

Use "NOLOCK" table hint in your report.

For Example:

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