起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 211|回复: 10

【结贴】查询问题[请求]

[复制链接]
发表于 2009-7-27 15:03:16 | 显示全部楼层 |阅读模式
在数据集中写SQL语句有长度限制吗?
我的语句类似下面的语句
SELECT *  FROM
( SELECT A,B,C,D1 AS D,E1 AS E,F1  AS F FROM TABLE UNION ALL
    SELECT A,B,C,D2 AS D,E2 AS E,F2  AS F FROM TABLE UNION ALL
    SELECT A,B,C,D3 AS D,E3 AS E,F3  AS F FROM TABLE UNION ALL
    SELECT A,B,C,D4 AS D,E4 AS E,F4  AS F FROM TABLE UNION ALL
    SELECT A,B,C,D5 AS D,E5 AS E,F5  AS F FROM TABLE UNION ALL)   SA

在界面上根据查询条件过滤时
    TSTOCK_ADJ_APP_INFO(InfoBroker.Info).DataSetSTOCK_ADJ_SEL_DT.Close;
     TSTOCK_ADJ_APP_INFO(InfoBroker.Info).DataSetSTOCK_ADJ_SEL_DT.UserFilter := sFilter;
     TSTOCK_ADJ_APP_INFO(InfoBroker.Info).DataSetSTOCK_ADJ_SEL_DT.Open;

提示:给查询语句***加上条件(sFilter)时出现异常;

我在数据库中直接把sFilter加在 数据集的SQL语句后面可以执行,什么原因?是否因为语句过长?
回复

使用道具 举报

 楼主| 发表于 2009-7-27 15:04:23 | 显示全部楼层
将 TSTOCK_ADJ_APP_INFO(InfoBroker.Info).DataSetSTOCK_ADJ_SEL_DT.UserFilter := sFilter;注释掉,直接查询所有数据是可以的。
回复 支持 反对

使用道具 举报

发表于 2009-7-27 15:09:09 | 显示全部楼层
你看下数据库的监控工具,看看发了什么sql导致的错误。或者考虑重新拼sql语句,不用urserfilter
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-27 15:23:44 | 显示全部楼层
应该不是语句的问题,上面我说了,我把sFilter中的条件直接加在SQL语句中放在数据库中是可以执行的。
能具体解释下这个错误的原因么?
回复 支持 反对

使用道具 举报

发表于 2009-7-27 15:25:17 | 显示全部楼层
你放到sqlfilter中试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-27 16:10:32 | 显示全部楼层
换成 sqlfilter 可以了,是否是因为平台不支持union all的原因?
另外还有个方法,在数据集的SQL中加入WHERE条件 1=1
在代码中
TSTOCK_ADJ_APP_INFO(InfoBroker.Info).DataSetSTOCK_ADJ_SEL_DT.SQL.Text:=StrUtils.AnsiReplaceStr(TSTOCK_ADJ_APP_INFO(InfoBroker.Info).DataSetSTOCK_ADJ_SEL_DT.SQL.Text,'1=1',sFilter)
替换掉SQL中的条件
语句执行完后再替换回去也是可以的。
什么原因?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-27 16:21:10 | 显示全部楼层
补充:换成 sqlfilter  只是没有报错,查询的结果并没有加上我的条件。
写法是否和UserFiler写法一样?
回复 支持 反对

使用道具 举报

发表于 2009-7-27 16:41:16 | 显示全部楼层
如果没加上你的条件,那就是这种写法支持不了。那就重新赋值sql吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-27 17:05:14 | 显示全部楼层
sqlfilter 过滤和 UserFilter的写法是一样的么?   麻烦给个例子
没用过sqlfilter 过滤。
回复 支持 反对

使用道具 举报

发表于 2009-7-27 17:09:06 | 显示全部楼层
看看手册,这2个写法没什么差别。但效果差别比较大。
userfilter客户是能修改的。
sqlfilter客户修改不了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 16:36 , Processed in 0.043127 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表