2,497
社区成员
发帖
与我相关
我的任务
分享
// adsDes 没有直接连接数据库
adsDes:TADODataSet;
adsDes.Close;
adsDes.FieldDefs.Clear;
with adsDes.FieldDefs do
begin
Add('fd1',ftString,15);
Add('fd2',ftString,15);
end;
adsDes.CreateDataSet;
// adsSrc 直接连接数据库的数据集
adsSrc:TADODataSet;
adocDB : TADOConnection;
adsSrc.Close;
adsSrc.Connection := adocDB;
adsSrc.CommandText := 'select fd1,fd2 from tb ';
adsSrc.Open;
// 如下的拷贝方法比较慢,当adsSrc里数据多时,显得特别慢,有什么办法可以改进吗?
if (adsSrc.Active) and (adsSrc.RecordCount>0) then
begin
adsSrc.First;
while not adsSrc.EOF do
begin
adsDes.Append;
adsDes.FieldByName('fd1').AsString := adsSrc.FieldByName('fd1').AsString;
adsDes.FieldByName('fd2').AsString := adsSrc.FieldByName('fd2').AsString;
adsDes.Post;
end;
adsDes.Last;
end;
while not adsSrc.EOF do
begin
adsDes.Append;
adsDes.FieldByName('fd1').AsString := adsSrc.FieldByName('fd1').AsString;
adsDes.FieldByName('fd2').AsString := adsSrc.FieldByName('fd2').AsString;
adsSrc.Next; //不好意思,少了一行!
adsDes.Post;
end;