Microsoft 以一个可下载文件的形式分发 Microsoft SQL Server 2008 R2 修补程序。 由于修补程序是累积的,因此每个新版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。
症状
请考虑以下情况:
-
你有一个报表定义语言(RDL)文件,该文件包含 Microsoft SQL Server 2008 R2 Reporting Services 中的 Tablix 控件。
-
将 "行组" 或 "列" 组添加到 " Tablix " 控件,然后使用具有数值数据类型的列将组表达式设置为组数据。
-
此列包含的值不在 Int32 数据类型的范围内。 例如,列的值为 9000001777400270。
在这种情况下,当你尝试生成报表时,将收到以下错误消息:
本地报表处理期间出错。 处理报表期间出错。 值对于 Int32 太大或太小。
解决方案
累积更新信息
SQL Server 2008 R2
此问题的修补程序首次在累积更新4中发布。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2345451 SQL Server 2008 R2 的累积更新程序包4 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本
解决方法
若要解决此问题,请将数字数据类型转换为 Double 数据类型或 Int64 数据类型。 为此,请按照下列步骤操作:
-
双击 " 行组 " 或 "列组 " 窗格中的组以打开 组 属性。
-
在 " 常规 " 选项卡上,将组表达式更改为以下 系统。 Double 数据类型表达式:
CDbl (Fields!<字段名称>。取值或者,将组表达式更改为以下 系统 Int64 数据类型:
CLng (Fields!<字段名称>。取值
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
有关数据类型的详细信息,请访问以下网站: