delphi中怎样把A数据库中对某张表的查询的结果插入(insert into)到B数据库中的某个表里呢?数据库的连接用adoconnection,查询/插入用adoquery来做.
怎么写sql语句阿?
比如是两个access的数据库.

解决方案 »

  1.   

    用两个数据集,分别联结数据库A(qryA),数据库B.(qryB)
    然后
    qryB.close;
    qryB.sql.text:='insert into A_tableName (A1,A2) VALUES (:ID1,:ID2)'
    qryB.Parameters.ParamByName('ID1').value:= qryA.fieldbyName('aa').asstring;
    qryB.Parameters.ParamByName('ID2').value:= qryA.fieldbyName('ab').asstring;
    qryB.ExecSQL;
      

  2.   


    qryB.close;
    qryB.sql.text:='insert into b SELECT * 
    FROM OpenDataSource(SELECT *
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', a) 
       AS a
    qryB.ExecSQL;
      

  3.   

    qryB.close;
    qryB.sql.text:='insert into b SELECT * FROM '
      +'OpenDataSource(SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''c:\MSOffice\Access\Samples\northwind.mdb'';''admin'';''mypwd'', a) a';
    qryB.ExecSQL;
      

  4.   

    用这个方法,简单明了.但是似乎只能插入一个查询的记录阿...如果用循环插入,会很慢阿 
    比如两个access的数据库.
    如果对于A.mdb数据库有a1,a2两张表,要查询:  select a1.xm from a1,a2 where a1.id=a2.id 该查询结果比如有1万条记录.
    对于B.mdb数据库,要把所A.mdb所查询到的1万条记录插入到B.mdb数据库中的b1表中去.insert into b1 怎么做?
      

  5.   


    用这个方法,access支持opendatasource吗?
    比如两个access的数据库.
    如果对于A.mdb数据库有a1,a2两张表,要查询:  select a1.xm from a1,a2 where a1.id=a2.id 该查询结果比如有1万条记录.
    对于B.mdb数据库,要把所A.mdb所查询到的1万条记录插入到B.mdb数据库中的b1表中去.insert into b1 怎么做?
    可否具体点?
      

  6.   


    insert into #Ta select * from #Tb