zhengwei_cq 发表于 2024-10-23 17:53:56

为什么sql后加条件后会报错

我在报表中加了条件会报错
{IIF(@CPLX = "", "", " and b.ProductClass='" & @CPLX & "' ")}


此条件我打印出来后将打印的值:and ProductClass='低值耗材' 直接加在sql后查是没有问题的,请问是什么原因?




Eden.Sun 发表于 2024-10-23 17:53:57

问题描述:

报表内嵌数据集 SQL 报错。

问题解决:
您好,从您的报错信息来看,这个是Mysql数据库抛出的异常,是SQL语句有问题。
您先把数据集删掉,在报表中拖一个文本框,把您的SQL语句放在文本框中显示一下,然后把您的SQL语句放进去,正常的输入参数值,可以看到最终生成的SQL语句。
您看看SQL语句对不对,可以直接复制去数据库里执行一下。

zhengwei_cq 发表于 2024-10-24 10:31:08

问题找到了,加了这个参数后,关键字前后的空格没有了,导致sql出问题,这是不是你们产品的bug????

Eden.Sun 发表于 2024-10-24 11:56:18

zhengwei_cq 发表于 2024-10-24 10:31
问题找到了,加了这个参数后,关键字前后的空格没有了,导致sql出问题,这是不是你们产品的bug????

不是bug哦。您也说了是缺少一个空格。您加上就行了。

zhengwei_cq 发表于 2024-10-24 16:47:44

Eden.Sun 发表于 2024-10-24 11:56
不是bug哦。您也说了是缺少一个空格。您加上就行了。

我在navicat中本来可以跑的sql,加了一个条件,全复制进去后就会把空格给我干掉

Felix.Li 发表于 2024-10-24 18:23:50

这个其实是走了{}后,我们确实会转义一遍,一般是在换行的时候需要注意,我们会替换掉换行符,所有有时候看上去换行的时候空格,其实是没有的。
页: [1]
查看完整版本: 为什么sql后加条件后会报错