REVISIÓN: "System.OverflowException: valor era demasiado grande o demasiado pequeño para Int32" aparece el mensaje de error cuando intenta generar un informe en Microsoft SQL Server 2008 R2 Reporting Services

Se aplica a: SQL Server 2008 R2

Microsoft distribuye correcciones de Microsoft SQL Server 2008 R2 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008 R2.

Síntomas


Imagine la siguiente situación:
  • Tiene un archivo de lenguaje RDL (Report Definition) que contiene un control Tablix en Microsoft SQL Server 2008 R2 Reporting Services.
  • Agregar un grupo de la fila o una columna al control Tablix y, a continuación, establezca una expresión de grupo a los datos de grupo utilizando una columna con un tipo de datos numérico.
  • Esta columna contiene un valor que no está en el intervalo del tipo de datos Int32 . Por ejemplo, un valor de la columna es 9000001777400270.
En este escenario, recibirá el siguiente mensaje de error al intentar generar el informe:
Se ha producido un error durante el procesamiento local de informes. Se ha producido un error durante el procesamiento del informe. Valor era demasiado grande o demasiado pequeño para Int32.

Solución


Información sobre la actualización acumulativa

SQL Server 2008 R2

La corrección para este problema en primer lugar se publicó en la actualización acumulativa 4. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2345451 Paquete de actualización acumulativa 4 para SQL Server 2008 R2
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008 R2. Le recomendamos que considere aplicar la versión más reciente de revisión que contenga este hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
981356 Compilaciones de SQL Server 2008 R2 que se publicaron después del lanzamiento de SQL Server 2008 R2

Solución alternativa


Para evitar este problema, convierta el tipo de datos numérico al tipo de datos Double o al tipo de datos Int64 . Para ello, siga estos pasos:
  1. Haga doble clic en el grupo en el panel Grupos de fila o Columna para abrir las propiedades del grupo .
  2. En la ficha General , cambie la expresión de grupo en la siguiente expresión de tipo de datos de System.Double :
    CDbl(Fields! < nombre de campo >. Valor)
    O bien, cambiar la expresión de grupo a los siguientes tipos de System.Int64 :
    CLng(Fields! < nombre de campo >. Valor)

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".