Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 R2 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые входили в предыдущий выпуск исправления SQL Server 2008 R2.
Проблема
Рассмотрим следующий сценарий.
- У вас есть файл языка определения отчетов (RDL), который содержит элемент управления Tablix в службах Microsoft SQL Server 2008 R2 Reporting Services.
- В элемент управления "Табликс" добавляется группа строк или столбцов, а затем задается групповое выражение для данных группы, используя столбец с числовым типом данных.
- Этот столбец содержит значение, которое не входит в диапазон типа данных Int32. Например, значение столбца — 9000001777400270.
В этом случае при попытке создать отчет выводится следующее сообщение об ошибке:
Примечание
Во время обработки локального отчета произошла ошибка.
Во время обработки отчета произошла ошибка.
Значение было либо слишком большим, либо слишком маленьким для Int32.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2
Исправление для этой проблемы впервые выпущено в накопительном пакете обновления 4. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, см. в следующей статье базы знаний Майкрософт:
Накопительный пакет обновления 4 2345451 для SQL Server 2008 R2 Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
981356 сборки SQL Server 2008 R2, выпущенные после выхода SQL Server 2008 R2
Временное решение
Чтобы обойти эту проблему, преобразуйте числовой тип данных в тип данных Double или Int64. Для этого выполните указанные ниже действия.
Дважды щелкните группу в области "Группы строк " или " Группы столбцов ", чтобы открыть свойства группы .
На вкладке "Общие " измените выражение группы на следующее выражение типа данных System.Double.
CDbl(Поля!<Имя> поля. Значение)Или измените выражение группы на следующий тип данных System.Int64:
CLng(Поля!<Имя> поля. Значение)
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Дополнительные сведения о типах данных см. на следующих веб-сайтах:
Общие сведения о «десятичной» структуре
Общие сведения о структуре "Int32"