起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 222|回复: 3

【搞定】帮我看看这段语句吧 怎么执行出错呢 谢谢**

[复制链接]
发表于 2006-12-26 22:21:49 | 显示全部楼层 |阅读模式
constructor TWZLYXXGL.Create(Acontext:Tcontext);
var
   id :string;
begin
  inherited;
  id:=TContextUtils.GetOperator(Context).ID;
  dsbmaster.DataSet.Filtered:=false;
  dsbmaster.DataSet.Filter:='fbillno in '
                           + '('
                           + ' select a.fbillno from ic_stockbill a ,ic_stockbillentry b, T_ICITEM c,T_STOCK d '
                           + 'where a.fbillno=b.fbillno and a.FCLASS= 0 '
                           + 'and b.fnumber=c.fguid and c.FSTOCKID=d.fguid '
                           + 'and d.FKEEPER='''+id+''''
                           + ' group by a.fbillno '
                           + ')';
  dsbmaster.DataSet.Filtered:=true;
  dsbmaster.DataSet.open;
end;

在查询分析器里 是可以通过的 但执行的时候 提示field  'select ' not found ”  是什么地方出错了呢 谢谢!比较急。
回复

使用道具 举报

发表于 2006-12-27 09:25:38 | 显示全部楼层
看看你的Select里查询出结果数据与你的条件字段类型是不是匹配
回复 支持 反对

使用道具 举报

发表于 2006-12-27 10:13:32 | 显示全部楼层
楼主先看看这个:
http://wiki.justep.cn/mywiki/moin.cgi/FilterDataSet

你的问题是:
1,dsbmaster.DataSet.Filtered:=false; 这句是不需要的,你等于先把所有过滤条件取消,然后再加上条件过滤,多了一步没有必要的操作。(这个不是主要原因)
2,Filter是客户端过滤,fbillno in 会找字段,发现select没有存在就报错了。这里你应该用服务端过滤 SQLFilter ,这样就可以了。
回复 支持 反对

使用道具 举报

发表于 2007-3-26 10:02:05 | 显示全部楼层
这个发错了............不是偶的问题
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-28 02:20 , Processed in 0.038317 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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