数据表追加问题 ( 积分: 0 )

  • 主题发起人 主题发起人 zqssoft
  • 开始时间 开始时间
Z

zqssoft

Unregistered / Unconfirmed
GUEST, unregistred user!
已知有Acess数据表A和数据表B,两表字段结构相同.
请问:如何才能将数据表B中的所有记录追加到数据表A中.
即实现两表数据合并到A中的目的.
 
补充一下:因为数据表A中已有20万条数据记录了,所以如果用逐条遍历添加的方法可能太慢.所以,要求一个能快速将B表中内容添加到A表中的解决方法.我就是用下面的代码进行添加的:
var
i:integer;
begin
for i:=0 to memo1.Lines.Count-1 do
begin
ADoTable1.Append;
AdoTAble1.FieldByName('词组').AsString:=trim(memo1.Lines.Strings);
ADoTAble1.FieldByName('首汉字').AsString:=copy(trim(memo1.Lines.Strings),0,2);
ADoTAble1.Post;
Application.processmessage;
end;
end;
但发现上十万条记录后,就慢了.所以想,把所有待添加的数据记录放到不同的表中,最后全部汇总到一个表中.以求60条数据尽快添加到Acess数据表A中.
如果能有改进我上面代码,加快速度的算法或方法,提供出来也行.
感谢您!
 
我也是来学学的.
 
insert into A select * from B
 
数据是从memo中读取的?为何不直接从库中读B表数据再逐条插入A表?
用adoquery组件,做一个简单的循环就可以了
 
Tquery1.close;
Tquery1.sql.add('insert into A select 词组,首汉字 from B');
Tquery1.execsql;
Tquery1.post;
你试试看。
 
除了汉字和首字母字段外,还有一个类型为自动编号的主索引字段.两表中.
你们说的全通不过,报错,请提供正确的方法,谢谢.
 
Adoquery1.close;
adoquery1.SQL.Clear;
adoquery1.sql.add('insert into 表1(词组,首汉字) select 词组,首汉字 from 表11');
adoquery1.execsql;

Adoquery1.close;
adoquery1.SQL.Clear;
adoquery1.sql.add('select * from 表1');
adoquery1.open;

上述代码解决问题,结贴.
 
后退
顶部