KB2359606-FIX : "System. OverflowException : la valeur était trop grande ou trop petite pour un message d’erreur Int32" lorsque vous tentez de générer un rapport dans Microsoft SQL Server 2008 R2 Reporting Services

S’applique à : SQL Server 2008 R2

Microsoft distribue les correctifs Microsoft SQL Server 2008 R2 sous la forme d’un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version de correctif SQL Server 2008 R2 antérieure.

Symptômes


Prenons l’exemple du scénario suivant :
  • Vous avez un fichier RDL (Report Definition Language) contenant un contrôle matriciel dans Microsoft SQL Server 2008 R2 Reporting Services.
  • Ajoutez un groupe de lignes ou un groupe de colonnes au contrôle tabli , puis définissez une expression de groupe sur les données du groupe en utilisant une colonne qui comporte un type de données numérique.
  • Cette colonne contient une valeur qui n’est pas comprise dans la plage du type de données Int32 . Par exemple, une valeur de la colonne est 9000001777400270.
Dans ce scénario, vous recevez le message d’erreur suivant lorsque vous essayez de générer le rapport :
Une erreur s’est produite lors du traitement du rapport local. Une erreur s’est produite lors du traitement du rapport. La valeur était trop grande ou trop petite pour un Int32.

Résolution


Informations sur les mises à jour cumulatives

SQL Server 2008 R2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 4. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2345451 Package de mise à jour cumulative 4 pour SQL Server 2008 R2
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
981356 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2

Solution de contournement


Pour contourner ce problème, convertissez le type de données numérique en type de données double ou en type de données Int64 . Pour cela, procédez comme suit :
  1. Double-cliquez sur le groupe dans le volet groupes de lignes ou de colonnes pour ouvrir les propriétés du groupe .
  2. Dans l’onglet général , remplacez l’expression de groupe par la suivante :
    CDbl (champs !<nom de champ>. Ajoutée
    Vous pouvez modifier l’expression de groupe avec le type de données System. Int64 suivant :
    CLng (champs !<nom de champ>. Ajoutée

Statut


Microsoft a confirmé l’existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.