请问在adodataset里边怎么将filter出来的结果放进另外一个adodataset?

flyzcl 2006-12-07 03:41:58
如题,谢谢!
...全文
297 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fayeflash 2007-02-14
  • 打赏
  • 举报
回复
帮你顶上去!
CACACACACA 2007-02-13
  • 打赏
  • 举报
回复
看看源代码, filter的设置是怎么搞的,不就明白了吗
withcsharp 2007-02-13
  • 打赏
  • 举报
回复
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
ADODataSet1.FieldDefs.Add('F1', ftInteger);
ADODataSet1.CreateDataSet;
ADODataSet1.Open;
for i := 0 to 10000 do
ADODataSet1.AppendRecord([i]);
ADODataSet1.Filter := 'F1>5000';
ADODataSet1.Filtered := true;
ADODataSet1.SaveToFile('c:\1.dat',pfADTG);

ADODataSet2.LoadFromFile('c:\1.dat');

end;
rangwoxiao 2007-02-11
  • 打赏
  • 举报
回复
主从表
kasteboy 2007-02-10
  • 打赏
  • 举报
回复
路过,也有一样的问题,但要是 (原本的SQL语句) 是个存储过程呢?
select * from (原本的SQL语句) as aaa where (原本的FILETER) 好像执行不了吧
DBgrid 2007-02-10
  • 打赏
  • 举报
回复
采用Clone。或者如下:
ADODataSet2.FieldDefs:=ADODataSet1.FieldDefs;
ADODataSet2.CreateDataSet;
ADODataSet2.Open;
ADODataSet2.AppendRecord();
imatc 2006-12-08
  • 打赏
  • 举报
回复
按你的思路 基本上只能从数据库重新取
有个小技巧

首先把原本的FILTER的拿出来
然后把原本的SQL语句包一层 最后在后面加个WHERE FILTER

select * from (原本的SQL语句) as aaa where (原本的FILETER)
jieguo 2006-12-08
  • 打赏
  • 举报
回复
对阿,克隆干什么
用sql直接从数据库取,然后只要保持两个数据集同步就可以了,也就是说一个数据集刷新后,另一个也跟着执行刷新
marf_cn 2006-12-08
  • 打赏
  • 举报
回复
为什么不用sql直接得
flyzcl 2006-12-07
  • 打赏
  • 举报
回复
我想过这个办法的,但是这样数据量太大了。
还有filter以后一个一个拷过去,那样又觉得太慢了……
踢踏 2006-12-07
  • 打赏
  • 举报
回复
AdoDataSet可以使用Clone方法把整个数据集克隆过去,然后按原先的Filter条件,过滤出你要的数据。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧