在Crystal Reports 10中运行(或验证数据库)报表时,我收到消息:
“无法找到数据库表”SomeTable“。继续从报告中删除此表?”
表示多个表格。
报告过去工作正常。该报告从多个源获取数据,缺少的表是从ODBC连接到SQL Server数据库的表。我认为问题可能是在创建报告时,ODBC指向数据库的不同实例(相同的结构,只是不同的位置。)
我已经检查过,报告用户拥有新数据库的所有必需权限。
在Crystal中,如果忽略这些消息,报告似乎运行正常。但是,当部署要在网站中的Crystal Report Viewer中运行的报表时,它会抛出File I/O error
。
答案 0 :(得分:0)
这个非常方便的博客文章提供了解决方案:https://wisdomofsolomon.wordpress.com/2011/06/18/crystal-reports-tables-not-found-during-verify-database/
通过运行Show SQL Query
,您可以看到生成的查询正在运行SQL,如
select * from databasename.dbo.SomeTable
这是导致问题的databasename
部分(虽然据我所知,在我的情况下,旧数据库名称与旧数据库连接之间的数据库名称没有任何不同。我的情况。)修改表查询以从SQL中删除数据库名称解决了我的问题。
您可以按照以下方式执行此操作:
Database / Set Datasource Location
。Properties
下,点击Overriden Qualified Table Name:
dbo.SomeTable
)(正如该博客文章的评论所指出的那样,你也可以创建一个 new 连接并用新数据源中的等价物替换表,但是这会留下完全限定的表名来自新的连接 - 所以你将来可能再次遇到同样的问题。)
答案 1 :(得分:0)
在Crystal中的文件,选项和数据库选项卡下,数据浏览器必须检查表。这不是一个容易了解的功能