var
i: integer;
fstr: Tstrings;
sqlStr: string;
begin
fstr:=Tstrings.create;
for i:=0 to AdoQuery1.RecordCount-1 do
fstr.add(AdoQuery1.fields[i].name);
sqlstr:='insert into AdoTable1( '
for i:=0 to fstr.itemsCount-1 do
sqlstr:=sqlstr+fstr.items[i];
sqlstr:=sqlstr+') select ';
for i:=0 to fstr.itemsCount-1 do
sqlstr:=sqlstr+fstr.items[i];
sqlstr:=sqlstr+' from AdoQuery1 where id=当前记录ID';
fstr.free;
AdoCommand1.Commandtext:=sqlstr;
AdoCommand1.Execute;