KB2359606 - 修正: Microsoft SQL Server 2008 R2 Reporting Services でレポートを生成しようとすると、"System.OverflowException: Value was too large or too small for an Int32" というエラー メッセージが表示される

適用先
SQL Server 2008 R2

マイクロソフトでは、Microsoft SQL Server 2008 R2 の修正を 1 つのダウンロード可能なファイルとして配布しています。 修正は累積的であるため、新しいリリースの修正には、以前のリリースの SQL Server 2008 R2 の修正に含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。

現象

たとえば次のようなシナリオを考えてみます。

  • Microsoft SQL Server 2008 R2 Reporting Services に Tablix コントロールを含むレポート定義言語 (RDL) ファイルがあります。
  • 行グループまたは列グループをタブリックス コントロールに追加してから、数値データ型の列を使用してグループ式をグループ データに設定します。
  • この列には、Int32 データ型の範囲外の値が含まれています。 たとえば、列の値が 9000001777400270 とします。

このシナリオでは、レポートを生成しようとすると、次のエラー メッセージが表示されます。

注

ローカル レポートの処理中にエラーが発生しました。
     レポートの処理中にエラーが発生しました。
     値が Int32 に対して大きすぎるか、小さすぎました。

      

解決策

累積的な更新プログラムの情報

SQL Server 2008 R2

この問題の修正プログラムは、累積的な更新プログラム 4 で最初にリリースされました。 SQL Server 2008 R2 用のこの累積的な更新プログラム パッケージを入手する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

2345451 SQL Server 2008 R2 の累積的な更新プログラム パッケージ 4 (注: ビルドは累積的であるため、新しい修正プログラムの各リリースには、以前の SQL Server 2008 R2 の修正プログラムのリリースに含まれていたすべての修正プログラムとセキュリティ更新プログラムが含まれています)。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

981356 SQL Server 2008 R2 のリリース以降にリリースされた SQL Server 2008 R2 のビルド

回避策

この問題を回避するには、数値データ型を Double データ型または Int64 データ型に変換します。 手順は次のとおりです。

  1. [ 行グループ ] ウィンドウまたは [ 列グループ ] ウィンドウでグループをダブルクリックして、 グループ プロパティを開きます。

  2. [ 全般 ] タブで、グループ式を次の System.Double データ型の式に変更します。

    CDbl(Fields!<フィールド名>。Value)または、グループ式を次の System.Int64 データ型に変更します。

    CLng(Fields!<フィールド名>。値)

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

データ型の詳細については、以下の Web サイトを参照してください。

"10 進数" 構造体に関する一般的な情報

"Int32" 構造体に関する一般的な情報

"Int64" 構造体に関する一般的な情報

"Double" 構造体に関する一般的な情報