起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 155|回复: 6

【结贴】怎样清空dataset中的数据**

[复制链接]
发表于 2007-11-22 18:02:57 | 显示全部楼层 |阅读模式
碰到一个情况,datagrid通过datasourse与dataset相连。
现要在一次查询后,先要清空datagrid和dataset中的数据,才能进行第二次查询。请问怎样清空数据。

ps,因为要实现添加查询的功能,就是在可能将第二次查询的结果与第一次查询合并起来显示,所以我没有用x3中常规的显示数据的方式。
回复

使用道具 举报

发表于 2007-11-22 18:47:28 | 显示全部楼层
DataSet.EmptyDataSet这个不行么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-23 09:04:57 | 显示全部楼层
最初由 shangxy 发布
[B]DataSet.EmptyDataSet这个不行么? [/B]


试过了,不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-23 09:19:02 | 显示全部楼层
最初由 shangxy 发布
[B]DataSet.EmptyDataSet这个不行么? [/B]


我代码是这样的:

if CbAdd.Checked then
      begin
         CopyData_Add(sQuery,DataSetSetAdd,'Job_CarCD');
      end
      else
      begin
           DataSetSetAdd.EmptyDataSet;
           DataSetSetAdd.
           CopyData_Add(sQuery,DataSetSetAdd,'Job_CarCD');
      end;
       DataSource1.DataSet:=DataSetSetAdd;
     end;

我是要在这个红字的地方清空dataset。


copy_Data_Add函数是这样的:

procedure CopyData_Add(Source,Dest: TDataSet;MField:String);
Var
  I,J:Integer;
  ss:String;
begin
  if (Source =Nil) or (Dest = Nil) or (Source.Active = false) or
    (Dest.Active = False) then exit;
  FInserted:=True;
  Source.First;
  while not Source.Eof do begin
    if  Dest.Locate(MField,Source.FieldByName(MField).Asstring,[]) then
    begin
      Source.Next;
      continue;
    end;
    Dest.Insert;
    for I:=0 to Source.Fields.Count - 1 do
    begin
       ss:=Source.Fields[I].FieldName;
       J:=Dest.FieldList.Indexof(ss);
       if  J >= 0 then
         Dest.Fields[J].Assign(Source.Fields[I]);
    end;
    Dest.Post;
    Source.Next;
  end;
  FInserted:=False;
end;
回复 支持 反对

使用道具 举报

发表于 2007-11-23 10:15:12 | 显示全部楼层
你先不用执行 CopyData_Add(sQuery,DataSetSetAdd,'Job_CarCD');这段代码,
你就用这个数据集DataSetSetAdd从数据库取出一些数据,然后在DataSetSetAdd.EmptyDataSet;看一下你的DataGrid是否是空的?
回复 支持 反对

使用道具 举报

发表于 2007-12-10 14:46:29 | 显示全部楼层
楼主,请反馈。
回复 支持 反对

使用道具 举报

发表于 2007-12-29 09:56:23 | 显示全部楼层
由于长时间没有反馈,先结贴了。

有问题请开新贴。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-4 00:51 , Processed in 0.038507 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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