循环复制数据集1的数据到数据集2
DataSetBZSJJ1.First;
j:=DataSetBZSJJ1.RecordCount;
while not DataSetBZSJJ2.Eof do 
begin
  DataSetBZSJJ2.Append;
  DataSetBZSJJ2.FieldByName('a').AsString:=DataSetBZSJJ1.FieldByName('a').AsString;
  DataSetBZSJJ2.FieldByName('b').AsString:=DataSetBZSJJ1.FieldByName('b').AsString;
  DataSetBZSJJ2.FieldByName('c').AsString:=DataSetBZSJJ1.FieldByName('c').AsString;
  i:=i+1;
  DataSetBZSJJ2.Post;
  DataSetBZSJJ1.Next;
end;
DataSetBZSJJ2.ApplyUpdates;
-----------------------------
进度条
  ProgressBar1.Min:=0;
  ProgressBar1.Max:=j;
  ProgressBar1.Position:=0;
  for i:=0 to j do
  begin
  ProgressBar1.Position:=ProgressBar1.Position+i;
  end;
  if ProgressBar1.Position=j then
  begin
  Dialogs.ShowMessage('ok!');
  end;我想数据集2新增一条记录时,根据i进行进度显示可以么??总进度长度为数据集1的长度j,但是不知道要把 [进度条] 的代码放在哪个地方,让i与进度同步,而操作数据完再循环.即添加1条记录进度+1。新手,各位多指点。

解决方案 »

  1.   


    试试下面的~~!
    DataSetBZSJJ1.First; 
    j:=DataSetBZSJJ1.RecordCount; 
    ProgressBar1.Position := 0;
    ProgressBar1.step     := 1;
    ProgressBar1.max      := j;
    while not DataSetBZSJJ1.Eof do    //注意你这里写错了~~~!不是DataSetBZSJJ2而是DataSetBZSJJ1
    begin 
      DataSetBZSJJ2.Append; 
      DataSetBZSJJ2.FieldByName('a').AsString:=DataSetBZSJJ1.FieldByName('a').AsString; 
      DataSetBZSJJ2.FieldByName('b').AsString:=DataSetBZSJJ1.FieldByName('b').AsString; 
      DataSetBZSJJ2.FieldByName('c').AsString:=DataSetBZSJJ1.FieldByName('c').AsString; 
      DataSetBZSJJ2.Post; 
      ProgressBar1.Position :=ProgressBar1.Position  +1;
      DataSetBZSJJ1.Next; 
    end; 
    DataSetBZSJJ2.ApplyUpdates; 
      

  2.   

    二楼的厉害!这么快帮我解决了,非常感谢!while not DataSetBZSJJ1.Eof do那是手写上来的时候不留意,也谢谢了!