现有两个ACCESS数据库A和B,数据库A中有一个名为入库记录的空表,数据库B中也一个名为入库记录的表(有数据),且这两个表的结构完全相同,如何将数据库B的数据复制到数据库A中。用Delphi的ADO控件怎么实现?最好是一条命令就能实现。

解决方案 »

  1.   

    insert into B select * from A in '数据库路径'
      

  2.   


    提供一个看似笨的方法  ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('select * from '+tablename);
      ADOQuery1.Active:=true;  ADOQuery2.SQL.Clear;
      ADOQuery2.SQL.Add('select * from '+tablename);
      ADOQuery2.Active:=true;  ADOQuery2.First
      While not ADOQuery2.Eof do   //ADOQuery2读旧库,ADOQuery1写新库
      begin
        ADOQuery1.Append;    //第1个字段~第n个字段,如果需要可以从0开始, 从1开始是因为第0个字段设了自动加1的identity
        for i:=1 to ADOQuery1.Fields.Count-1 do    
          ADOQuery1.Fields[i].Value:= ADOQuery2.Fields[i].Value;    ADOQuery1.Post;
        ADOQuery2.Next;
      end;
    以上代码还使用于同结构多表合并、不同数据库平台的转换(如Access到SQL Server),只要两个ADOQuery的连接信息正确如果仅仅要实现操作而不一定非写代码,可尝试采用以下方法:
    1)Access支持跨数据文件间的表复制:传统Ctrl+C,Ctrl+V就可以(开两个Access窗口,粘贴前先选中目标表)
    2)用SQL Server附带的"导入和导出数据"工具.