【问题标题】:Crystal Reports ODBC connection: the database table <tablename> cannot be foundCrystal Reports ODBC 连接:找不到数据库表 <tablename>
【发布时间】:2020-04-30 01:17:39
【问题描述】:

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

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

用于多个表。

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

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

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

【问题讨论】:

  • 如果问题得到解决,您可以接受作为答案,以便其他人可以使用

标签: crystal-reports crystal-reports-10


【解决方案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 中删除数据库名称为我解决了这个问题。

你可以这样做:

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

(正如对该博客文章的评论指出的那样,您还可以创建一个 new 连接并将表替换为来自该新数据源的等效表,但这会为您留下完全限定的表名来自新连接 - 因此您将来可能会再次遇到同样的问题。)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2011-10-22
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2015-09-08
      相关资源
      最近更新 更多