先假设如下情况,先通过两个ado的数据源A和B分别连接到两个数据库a和b,然后以两个adoquery C和D分别连接A B ,用C从a库中取出一个表m中的一部分数据,然后将其取出的数据插入到一个在b库中与前述a库中表结构完全相同的表n中,我现在用D与b库连接。想问一下,能不能有什么比较简单的方法来直接拷过去。
我现在用的方法是采用insert来做的,但是要一个字段一个字段的来。我想能不能有一个直接整个记录插入的方法,要是更好的话,是不是可以把用C取出的数据直接一下就全部插入新库中,这里一个比较方便之处是两个表的结构完全一致,但不是完全复制,只是将其中的一部分数据复制过来。

解决方案 »

  1.   

    看了半天,给你总结了一下,不知是不是你的本意?DatabaseA -- ADOConnectionA -- ADOQueryC -- 表m
    DatabaseB -- ADOConnectionB -- ADOQueryD -- 表n"用C取出的数据直接一下就全部插入新库中",谁是新库?
    是从表m -> 表n?DatabaseA和DatabaseB都是什麽数据库?SQL Server? Access?
      

  2.   

    adoquery C.close;
    adoquery C.sql.clear;
    adoquery c.sql.add(select * from  a into  b);
    adoquery c.exesql;
      

  3.   

    若是两个Access数据库,你用ADOConnection连一个假设为dba,另一个为dbb在d:\dbb.mdb处:
      ADOConnection1.Execute('insert into n in ''d:\dbb.mdb'' select * from a');
    你测试一下有没有用
      

  4.   

    楼主:参考一下此貼↓
    http://expert.csdn.net/Expert/topic/3022/3022223.xml?temp=.2753717
      

  5.   

    1个ADOConnection+1个ADOQuery+1句SQL语句即搞定:
    ADOConnection1连接到数据库a,ADOQuery1连接到ADOConnection1,假设数据库b为c:\db2.mdb,则:ADOQuery1.Close;
    ADOQuery1.SQL.Text:='insert into m select * from n in "c:\db2.mdb" where ...';
    ADOQuery1.ExecSQL;
      

  6.   

    楼上的方法有些问题,这里的源数据是在sql server里,用这样的方法是不行的。