0

我正在使用 Crystal Reports 2011 并在 Pervasive v2011 数据引擎中查询视图。我正在尝试在普遍数据库上的 Crystal Reports 中执行相当长的选择。

一切正常,直到我在我的 SELECT 中的最后一个 WHERE。我有一个参数,我试图在描述字段的参数中找到代码段。我尝试通过更正选择专家中的论坛,将通配符添加到描述字段的 LIKE 语句中。

从那里看来,水晶正在以一种巨大的方式把事情搞砸。在我查看 SQL 查询的长查询中,它似乎根本没有正确编码(数据库 > 显示 SQL 查询)。当我尽可能基本地剥离查询时,它会正确编码但不返回任何内容。如果我从 Show SQL Query 复制大查询上的代码,修复 like 语句,然后将其粘贴并执行到 PCC 中,它会返回我期望的结果。

来自 Pervasive Generated SQL 的查询部分 ("V_PO_LINES"."DESCRIPTION" LIKE '%' OR "V_PO_LINES"."DESCRIPTION" LIKE '%' OR "V_PO_LINES"."DESCRIPTION" LIKE '{?LikeText}')

Crystal 在剥离和简化查询中编写的查询。 SELECT "PO_LINES"."DESCRIPTION" WHERE "PO_LINES"."DESCRIPTION" LIKE '%{?LikeText}%'

在 PCC 中工作的长查询中的 SQL 片段。 ("V_PO_LINES"."DESCRIPTION" LIKE '%{?LikeText}%')

选择语句水晶选择专家。 {V_PO_LINES.DATE_LAST_RECEIVED} <> 日期(未关闭)和 {V_PO_LINES.DATE_DUE_LINE} = {?Date Range} 和 {V_PO_LINES.VENDOR} = {?Vendor} 和 {V_PO_LINES.DESCRIPTION} 像 '%' + {?LikeText} + '%'

我在 2011 版本 14.04.738 RTM

还有其他人遇到这个吗?有修复或解决方法吗?

4

1 回答 1

1

如果您的 {?LikeText} 参数接受多个值,这将导致 Crystal 将“+”符号视为添加元素到数组运算符。这样做'%' + {?LikeText} + '%'实际上是创建一个字符串数组而不是单个连接字符串:

[ '%', 'WhatYouEnteredInTheParameter', '%' ]

这导致 Crystal 将其解析为 SQL 中的逻辑或。要解决此问题,请进入您的参数并设置“允许多个值?” 为“否”。

我还建议您尝试使用“*”而不是“%”,后者是 Crystal 的通配符。

于 2014-01-20T18:09:43.637 回答