我有一个查询64位SQL Server 2012数据库的Crystal Report。数据源是具有一个参数的存储过程。过程的代码接受参数并将其设置为局部变量,以避免直接使用参数变量时遇到的问题。该报告有一个子报表,它使用与主报表相同的数据源。我通过子报表链接将参数传递给子报表。该报告使用OLE DB(ADO)数据库类型和SQLOLEDB提供程序。
在版本9中,报告运行大约20分钟,然后返回验证数据库消息框,说“数据库文件”[程序名称]“已更改。继续修复报告!”然后打开“映射字段”窗口,并且没有任何过程的字段可用。我只需单击Next,查看公式错误和what-not,然后报表呈现,但子报表中没有字段。
在版本10中运行的完全相同的报告没有任何更改,立即呈现。如果我删除子报表或将提供程序更改为SQL Native Client 11,报表将立即在版本9中呈现。
此报告需要在现有的VB6应用程序中使用,因此我必须使用OLE DB并且必须在版本9中进行渲染。
任何人都对使用OLE DB在版本9上工作的原因有任何疑问?