Crystal Reports ODBC连接:找不到数据库表<tablename>

时间:2016-04-19 08:33:40

标签: crystal-reports crystal-reports-10

在Crystal Reports 10中运行(或验证数据库)报表时,我收到消息:

  

“无法找到数据库表”SomeTable“。继续从报告中删除此表?”

表示多个表格。

报告过去工作正常。该报告从多个源获取数据,缺少的表是从ODBC连接到SQL Server数据库的表。我认为问题可能是在创建报告时,ODBC指向数据库的不同实例(相同的结构,只是不同的位置。)

我已经检查过,报告用户拥有新数据库的所有必需权限。

在Crystal中,如果忽略这些消息,报告似乎运行正常。但是,当部署要在网站中的Crystal Report Viewer中运行的报表时,它会抛出File I/O error

2 个答案:

答案 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中的文件,选项和数据库选项卡下,数据浏览器必须检查表。这不是一个容易了解的功能