我在Access和MS SQL Server中分别有两个结构一样的库,有没有比较快的把数据从一个中统统倒入到另一个库中呢?像MS SQL Server 中的DTS样的功能?

解决方案 »

  1.   

    在sql server端执行:
    CDatabase db;
    db.Open(..);
    //从sql server到access
    db.ExecuteSQL("insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','c:\\aa.mdb';'admin';'', accessDatabasename) (accessTable) select * from table")
    //从难从严access到sql serverinsert into table select * from OPENROWSET('Microsoft.Jet.OLEDB.4.0','c:\aa.mdb';'admin';'', accessDatabasename)
      

  2.   

    非常感谢,不过还有一些疑问:
    1。是不是OPENROWSET必须在SQL Server得机器上运行呢?
       我不是在SQL Server上运行老是报错,说'Microsoft.Jet.OLEDB.4.0'拒绝连接……,在SQL Server上运行,它又报说From后面的不对,我是这样用的:
       // access-> sql 
       db已经通过ODBC连上了远程得SQL Server
       db.ExecuteSQL("insert into table1 select * from OPENROWSET  ('Microsoft.Jet.OLEDB.4.0','c:\aa.mdb';'admin';'', table1)");
    2.第一个sql -> access 得我看得不太明白,能不能弄个具体的库和表举个例子?
      

  3.   

    “是不是OPENROWSET必须在SQL Server得机器上运行呢?”是,PENROWSET只能打开sql server服务器端的access数据库。而且登录用户要有"system administrators"权限。
    db.ExecuteSQL("insert into table1 select * from OPENROWSET  ('Microsoft.Jet.OLEDB.4.0','c:\aa.mdb';'admin';'', table1)");这就是一个完整的例子。具体的你可以在sql server 查询分析器的帮助中找到