我有一个通过SQLOLEDB提供程序连接到SQL Server数据库的Crystal Report。
报表中引用的某些列已在基础 SQL Server 数据库中从设置的 nvarchar 大小调整为 nvarchar(max)。
在验证报表时,Crystal Reports 2008 SP3 看不到要重新映射它的列,并且该列不再显示在可用于映射的表中的列列表中。
我还在Visual Studio 2013中使用Crystal Reports 13_0_10对此进行了测试,并观察到相同的行为。
我能看到的唯一解决方案是记下报表上的物理位置,验证数据库(删除列),然后将列重新添加到同一位置的报表中(这将非常耗时)。
有没有更简单的方法来完成这项任务?我本来希望较新版本的 Crystal 能够处理这个问题。
添加到您的连接字符串:
DataTypeCompatibility=80
SQL Server 2005 添加了新的 varchar(max)
数据类型,我认为 Crystal 使用的 ADO 库令人困惑。添加DataTypeCompatiblity=80
将导致SQL Server将列返回为"ntext"而不是"nvarchar(max)"。