现有2个数据库
数据库DB1中的WRK;
  cid   cname   cdeptID
 0001   张三    0000001
 0003   李四    0000004
  ......BM表:
   cid     cname
 0000001   材料科
 .......数据库DB2中的 
DEPT表
   id    cid     canme
   1   0000001   材料科
   2   0000002   财务科
   3   0000004   行政科
   .....表employee
 id   cid   cname  departmentID
 1    0001  张三       1
 2    0003  李四       3我已经将DB1中的BM导入到了DB2中的DEPT,表employee数据怎么导?在程序中用ADO组件怎么控制?
在数据库中我知道怎么实现insert into employee(cid,cname,departmentID)
select a.cid,a.cname,b.id from DB1.WRK a
join
DB2.DEPT b
on
a.cdeptID=b.cnumber

解决方案 »

  1.   

    用存储过程控件ADOSTOREPROC控件,把
    ...
    insert into employee(cid,cname,departmentID)
    select a.cid,a.cname,b.id from DB1.WRK a
    join
    DB2.DEPT b
    on
    a.cdeptID=b.cnumber
    ...
    写在存储过程里..后调用.
      

  2.   

    insert into employee(cid,cname,departmentID)
    select a.cid,a.cname,b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d where  ) 
    b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d where c.cdeptID=d.cid  ) 
    from DB1.dbo.WRK a,Db2.dbo.Dept b
      

  3.   

    添加TADOquery 控件
    with Adoquery1 do
      begin
        close;
        sql.clear;
        sql.add('insert into employee(cid,cname,departmentID)');
        sql.add('select a.cid,a.cname,b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d'); 
        sql.add('where  ) ');
        sql.add('b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d wherec.cdeptID=d.cid)');
        sql.add('from DB1.dbo.WRK a,Db2.dbo.Dept b');
        execsql;
      end;
      

  4.   

    我忘说了DB1用的是MSDE,DB2用的是SQLServer这样操作能行吗?