KB2359606 – OPRAVA: Při pokusu o generování sestavy ve službě Microsoft SQL Server 2008 R2 Reporting Services se zobrazí chybová zpráva System.OverflowException: Hodnota byla příliš velká nebo příliš malá pro Int32

Platí pro
SQL Server 2008 R2

Microsoft distribuuje opravy systému Microsoft SQL Server 2008 R2 jako jeden soubor ke stažení. Vzhledem k tomu, že opravy jsou kumulativní, obsahuje každá nová verze všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008 R2.

Příznaky

Vezměte v úvahu následující scénář:

  • Máte soubor RDL (Report Definition Language), který obsahuje ovládací prvek Tablix ve službě Microsoft SQL Server 2008 R2 Reporting Services.
  • Do ovládacího prvku Tablix přidáte skupinu řádků nebo skupinu sloupců a poté nastavíte výraz skupiny pro data skupiny pomocí sloupce, který má číselný datový typ.
  • Tento sloupec obsahuje hodnotu, která není v rozsahu datového typu Int32. Například hodnota sloupce je 9000001777400270.

V tomto scénáři se při pokusu o vygenerování sestavy zobrazí následující chybová zpráva:

Poznámka

Při zpracování místní sestavy došlo k chybě.
     Během zpracování sestavy došlo k chybě.
     Hodnota byla pro Int32 buď příliš velká, nebo příliš malá.

      

Řešení

Informace o kumulativní aktualizaci

SQL Server 2008 R2

Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 4. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:

2345451 Balíček kumulativní aktualizace 4 pro SQL Server 2008 R2 Poznámka: Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly zahrnuty v předchozí verzi opravy SQL Server 2008 R2. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:

981356 Buildy SQL Server 2008 R2, které byly vydány po vydání verze SQL Server 2008 R2

Alternativní řešení

Tento problém obejdete tak, že převedete číselný datový typ na datový typ Double nebo na datový typ Int64. Postupujte takto:

  1. Poklikáním na skupinu v podokně Skupiny řádků nebo Skupiny sloupců otevřete vlastnosti skupiny .

  2. Na kartě Obecné změňte výraz skupiny na následující výraz datového typu System.Double:

    CDbl(pole!<Název> pole. Value)Nebo změňte výraz skupiny na následující datový typ System.Int64:

    CLng(pole!<Název> pole. Hodnota)

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

Reference

Další informace o datových typech naleznete na následujících webech:

Obecné informace o "desítkové" struktuře

Obecné informace o struktuře "Int32"

Obecné informace o struktuře Int64

Obecné informace o struktuře "Double"