19

我有一个我没有编写的 .rpt 文件,也找不到有关的文档。我希望能够查看从该报告生成的 SQL,以便我可以弄清楚它提取了哪些数据以及使用了哪些 WHERE 子句参数。

我可以打开它并查看报告布局。但是当我选择Database|Show SQL Query...时,报告会尝试连接到数据源。问题是,我不知道正在使用的数据源,可能是编写查询的人使用的 ODBC 连接。在那个阶段我所能做的就是“取消”,然后我又回到了报表设计器上。

我错过了什么吗?我可以在不连接到数据源的情况下访问 SQL 查询吗?似乎查看选择标准不应该依赖于数据连接。

谢谢。

版本:水晶报表 2008

4

5 回答 5

21

我知道这是一个旧线程,但我遇到了同样的问题。实际上,我们曾经拥有一个已被外部机构收购的数据库/应用程序。

尽管他们现在拥有数据库/应用程序,但他们无法访问水晶报表,因此我们不能只向他们发送我们过去运行的旧报表。同样,我们无法运行它,因为我们甚至没有在任何地方设置数据库......所以我们的计划只是提取报告生成的 SQL 代码并将其转发。

我们遇到了同样的问题,但解决方案实际上非常简单。如果您无权访问原始数据源,只需创建一个新的“空白”数据源(例如 ODBC 连接)。只要与数据源的连接有效(即它是某种有效的数据源,它就可以正常工作)。运行“显示 SQL”选项时,将报告指向此数据源。只要您不尝试实际运行报告(并且只显示 SQL),操作就不会失败。无论如何,这对我们的情况有效。(水晶报告 2008)

(如果有任何帮助,我可以提供更多细节。)

于 2011-03-23T01:17:24.313 回答
6

通过选择 Database > Set Datasource Location... 应该可以找到有关现有数据源的一些详细信息。

除了使您能够更改数据源位置之外,这还应该向您显示有关当前数据源的一些信息,例如正在使用的数据源类型,以及可能(取决于驱动程序的类型)数据库的名称。如果(如您所料)数据源是 ODBC,它的帮助可能会减少,但如果它使用本机驱动程序,则可能会有一些有用的东西。

于 2010-07-14T16:17:58.067 回答
5

没有密码,我不确定你能做多少。似乎“显示 SQL 查询”需要先运行报告,然后生成 SQL 计划。

这并不理想,但您可以转到 Database > Visual Linking Expert 以至少查看表及其连接方式,然后转到 Record Selection Formula Editor 并查看自定义 WHERE 语句是什么。

于 2010-07-14T16:02:08.513 回答
3

查看 Crystal Report 文件中命令的 SQL

有时您只有报告文件,但没有报告使用的关联数据库结构。这在处理您希望模仿的功能的示例报告时很常见。这是一种解决方法,仅当您没有报表所基于的基础数据库连接时,才允许您查看 Crystal 报表所基于的命令的 SQL。本质上,对话框必须满足才能显示 SQL,因此我们使用合法的数据源来欺骗它,而不是与实际在 SQL 命令中的 SQL 一起工作的数据源。

为什么报告使用命令?Crystal Reports没有链接表格的能力吗?当 Crystal Report 基于一个对于 Crystal Reports 中的表链接功能而言过于复杂的记录集时,该报表可以改为基于 SQL 查询,通常在另一个编辑器工具中开发/测试并粘贴到命令中。这允许使用高级 SQL 函数。

如果您的计算机上尚未设置可以连接的数据源,则需要先构建一个。

一个简单的 Microsoft Access .mdb 文件保存在一个简单的位置就足够了。我将我的放在路径 C:\A_test\test.mdb 中,以便于查找。如果您没有,请在 Google 上搜索一个示例 mdb 文件并下载它,并使用您可以记住的名称和位置保存它。(您永远不会真正打开此文件,而只是连接到它。)保存文件后,打开 ODBC 管理器并创建一个新数据源。(您可以从开始 > 在搜索中键入 ODBC 快速进入 ODBC 管理器) 在用户 DSN 选项卡上,单击添加按钮。将驱动程序列表向下滚动到 Microsoft Access Driver (*.mdb),选择它并单击完成按钮。在“数据源名称”框中,键入一个名称(我使用了 MyTest)。单击选择按钮并选择您在上一步中保存的 mdb 文件,然后单击确定。再次单击确定。您将看到按您提供的名称列出的新数据源。单击确定。您现在拥有后续步骤所需的数据源。

  1. 打开要查看 SQL 命令的 Crystal Report,然后单击 Database Expert 按钮或 Database>Database Expert Menu。
  2. 在选定的表下,右键单击命令并选择查看命令
  3. 出现数据源选择框。选择您创建的数据源(或您已经使用的数据源),然后单击完成按钮。“查看命令”框应在左侧窗格中打开,并带有 SQL。将 SQL 复制到您喜欢的文本编辑器中。
于 2015-01-21T07:02:36.093 回答
0

发生的事情是水晶报告需要一个数据库来连接,无论它是否是原始源数据库。

创建本地数据库或使用存储在服务器上的数据库,将其添加到您的 ODBC 数据源并在连接时使用它。成功连接后,您应该能够查看 SQL 查询而不会出现错误。

于 2018-10-15T16:10:19.447 回答