起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 133|回复: 2

【结贴】为什么用数据集过滤与自己写SQL结果不同 紧急**

[复制链接]
发表于 2007-11-12 11:21:26 | 显示全部楼层 |阅读模式
为什么用数据集过滤与自己写SQL结果不同 :
数据集过滤:
TSqlDataSet(DataSetBroker3.DataSet).Filter:= ' Participants =  ''' + lContextCurrent.Operator.DisplayName + '''';
       TSqlDataSet(DataSetBroker3.DataSet).Filtered:= true;

自己的SQL:
TSqlDataSet(DataSetBroker3.DataSet).SQL.Clear;
       TSqlDataSet(DataSetBroker3.DataSet).SQL.Text:='select * from BG_NBHYCJR where Participants =  ''' + lContextCurrent.Operator.DisplayName + '''';
       DataSetBroker3.DataSet.Open;
       DataSetBroker3.DataSet.edit;
用:
dialogs.ShowMessage(sysutils.IntToStr(DataSetBroker3.DataSet.RecordCount));
显示的结果是:
前者为‘0’;
后者为‘4’;
回复

使用道具 举报

发表于 2007-11-12 11:36:49 | 显示全部楼层
前者是本地过滤,即在取回本地的数据集的数据的基础上过滤的
后者是服务端过滤,即按照你的sql发给数据库,把结果返回来

不一样 那么你Filter之前数据集中的数据是返回的BG_NBHYCJR这个表中的所有数据吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-12 15:29:50 | 显示全部楼层

明白了

谢谢,揭贴
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-30 03:59 , Processed in 0.039811 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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