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中去了。
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中去了。
begin
close;
sql.clear;
sql.text:='select * into 目的表 from 原始表';
ExecSQL;
end;
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;
SQL语句:
Insert into a from select * form b
"这段程序怎么会循环执行下去了,没有停止了"因为你第一句是insert
表中的记录在不停的添加当然永远至不了最后了
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;
for i := 0 to RecCount - 1 do
begin
...
end;好像还是不行啊!!那个朋友能给个解决方法吗?
这到底是那里出错了啊!是个什么问题啊!