KB2359606 - 修正:當您嘗試在 SQL Server 2008 R2 中產生報表時,出現「System.OverflowException: 值對於 Int32 Microsoft太大或太小」錯誤訊息Reporting Services

Applies To
SQL Server 2008 R2

Microsoft 會發佈 Microsoft SQL Server 2008 R2 修正程式作為一個可下載的檔案。 由於修正程式是累積式,因此每個新版本都包含先前的 SQL Server 2008 R2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。

症狀

請考慮以下案例:

  • 您在 Microsoft SQL Server 2008 R2 Reporting Services 中擁有包含 Tablix 控制項的報表定義語言 (RDL) 檔案。
  • 您可以將列群組或欄群組新增至 Tablix 控制項,然後使用具有數值資料類型的欄位來設定群組資料的群組運算式。
  • 此欄位包含的值不在 Int32 資料類型的範圍內。 例如,資料行的值為 9000001777400270。

在此案例中,當您嘗試產生報表時,會收到下列錯誤訊息:

注意

本機報表處理期間發生錯誤。
     報表處理期間發生錯誤。
     值對於 Int32 來說太大或太小。

      

解決方式

累積更新資訊

SQL Server 2008 R2

此問題的修正程式最初在累積更新 4 中發行。 如需有關如何取得 SQL Server 2008 R2 的累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2345451 SQL Server 2008 R2 的累積更新套件 4 注意:由於組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 R2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在 SQL Server 2008 R2 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

因應措施

若要解決此問題,請將數值資料類型轉換為 Double 資料類型或 Int64 資料類型。 若要這麼做,請按照下列步驟進行:

  1. 按兩下 [資料列群組 ] 或 [資料行群組 ] 窗格中的群組,以開啟 [ 群組 ] 屬性。

  2. 在 [ 一般 ] 索引標籤上,將群組運算式變更為下列 System.Double 資料類型運算式:

    CDbl (Fields!<欄位名稱>。值) 或者,將群組運算式變更為下列 System.Int64 資料類型:

    CLng (Fields!<欄位名稱>。值)

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

如需有關資料類型的詳細資訊,請造訪下列網站:

關於「十進位」結構的一般資訊

關於 “Int32” 結構的一般資訊

關於 “Int64” 結構的一般資訊

有關“雙精度”結構的一般信息