KB2359606 - ÅTGÄRD: Felmeddelandet "System.OverflowException: Värdet var antingen för stort eller för litet för en Int32" visas när du försöker generera en rapport i Microsoft SQL Server 2008 R2 Reporting Services

Gäller för
SQL Server 2008 R2

Microsoft distribuerar Microsoft SQL Server 2008 R2-korrigeringar som en nedladdningsbar fil. Eftersom korrigeringarna är kumulativa innehåller varje ny utgåva alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008 R2-korrigeringsversionen.

Symptom

Tänk dig följande scenario:

  • Du har en RDL-fil (Report Definition Language) som innehåller en tablixkontroll i Microsoft SQL Server 2008 R2 Reporting Services.
  • Du lägger till en radgrupp eller en kolumngrupp i tablixkontrollen och anger sedan ett grupputtryck för gruppdata genom att använda en kolumn som har en numerisk datatyp.
  • Den här kolumnen innehåller ett värde som inte ligger inom intervallet för datatypen Int32. Till exempel är ett värde i kolumnen 9000001777400270.

I det här scenariot får du följande felmeddelande när du försöker generera rapporten:

Obs

Ett fel uppstod under lokal rapportbearbetning.
     Ett fel uppstod under rapportbearbetningen.
     Värdet var antingen för stort eller för litet för en Int32.

      

Lösning

Information om kumulativ uppdatering

SQL Server 2008 R2

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 4. Om du vill veta mer om hur du hämtar det här kumulativa uppdateringspaketet för SQL Server 2008 R2 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2345451 kumulativt uppdateringspaket 4 för SQL Server 2008 R2 Obs! Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008 R2-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

981356 De SQL Server 2008 R2-versionerna som släpptes efter att SQL Server 2008 R2 släpptes

Lösning

Lös problemet genom att konvertera den numeriska datatypen till datatypen Double eller till datatypen Int64. Gör följande:

  1. Dubbelklicka på gruppen i fönstret Radgrupper eller Kolumngrupper för att öppna Gruppegenskaper .

  2. På fliken Allmänt ändrar du grupputtrycket till följande System.Double-datatypsuttryck:

    CDbl(Fält!<Fältnamn>. Värde)Eller ändra grupputtrycket till följande System.Int64-datatyp:

    CLng(Fält!<Fältnamn>. Värde)

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Referenser

Mer information om datatyper finns på följande webbplatser:

Allmän information om decimalstrukturen

Allmän information om strukturen "Int32"

Allmän information om strukturen "Int64"

Allmän information om "Double"-strukturen