while not ADOQuery.Eof do 
begin
 ADOTable.Insert; 
 ADOTable.fieldbyname('id').asstring:=ADOQuery.fieldvalues['id'];
 .                                           .
 .                                           .
 .                                           .
 ADOTable.fieldbyname('city').astring:=ADOQuery.fieldvalues['city'];
 ADOTable.Post;
 ADOQuery.Next;
end;这段程序怎么会循环执行下去了,没有停止了。
我是想在ADOQuery中的记录全都copy到ADOTable中去
就停止啊,可是到最后一条记录后,又重头开始copy ADOQuery中的记录到ADOTable中去了。

解决方案 »

  1.   

    其实你的问题可以使用一条sql语句解决with adoquery do
    begin
      close;
      sql.clear;
      sql.text:='select * into 目的表 from 原始表';
      ExecSQL;
    end;
      

  2.   

    ADOQuery.first;
    for i:=0 to ADOQuery.recordcount-1 do
    begin
     ADOTable.Insert; 
     ADOTable.fieldbyname('id').asstring:=ADOQuery.fieldvalues['id'];
     .                                           .
     .                                           .
     .                                           .
     ADOTable.fieldbyname('city').astring:=ADOQuery.fieldvalues['city'];
     ADOTable.Post;
     ADOQuery.Next;
    end;
      

  3.   

    或者
    SQL语句:
    Insert into a from select * form b
      

  4.   


    "这段程序怎么会循环执行下去了,没有停止了"因为你第一句是insert 
    表中的记录在不停的添加当然永远至不了最后了
      

  5.   

    ADOQuery.first;
    for i:=0 to ADOQuery.recordcount-1 do
    begin
     ADOTable.Insert; 
     ADOTable.fieldbyname('id').asstring:=ADOQuery.fieldvalues['id'];
     .                                           .
     .                                           .
     .                                           .
     ADOTable.fieldbyname('city').astring:=ADOQuery.fieldvalues['city'];
     ADOTable.Post;
     ADOQuery.Next;
    end;
    这样也应该会出现问题:
    循环应该这么写
    RecCount := ADOQuery.recordcount;
    for i := 0 to RecCount - 1 do
    begin
       ...
    end;
      

  6.   

    sorry,发错了,但不知道如何撤消这个回复的帖子!其实按作者的意思,不应该会出现循环的!我在DELPHI6.0上做了下实验,都很正常。因为ADOQuery只有扫描操作!
      

  7.   

    RecCount := ADOQuery.recordcount;
    for i := 0 to RecCount - 1 do
    begin
       ...
    end;好像还是不行啊!!那个朋友能给个解决方法吗?
    这到底是那里出错了啊!是个什么问题啊!