0

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

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

对于多个表。

该报告过去运行良好。该报告正在从多个来源获取数据,而丢失的表是那些来自与 SQL Server DB 的 ODBC 连接的表。我认为问题可能是在创建报告时,ODBC 指向数据库的不同实例(相同的结构,只是不同的位置。)

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

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

4

2 回答 2

1

这篇非常方便的博客文章提供了解决方案: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 中删除 databasename 为我解决了这个问题。

您可以按如下方式执行此操作:

  • 进入Database / Set Datasource Location菜单。
  • 在报告树中向下钻取到导致问题的表
  • 在 下Properties,单击Overriden Qualified Table Name:
  • 在文本框中,键入不带数据库名称的表名(例如dbo.SomeTable
  • 对所有导致问题的表执行此操作

(正如对该博客文章的评论所指出的那样,您还可以创建一个连接并用该新数据源中的等价物替换这些表,但这会给您留下来自新连接的完全限定表名 - 所以您可能会得到以后还会遇到同样的问题。)

于 2016-04-19T08:33:40.433 回答
0

在 Crystal 中,在文件和选项和数据库选项卡下,数据浏览器必须检查表。这不是一个容易了解的功能

于 2020-04-29T17:17:39.880 回答