我采用的是ADO链接数据库的操作方式,但是当调用含有OpenDataSource()的SQL语句是出现异常。请看代码:
     strSql = _T("");
     strSql = _T("select * into aaaa from OpenDataSource");
     strSql += _T("('Microsoft.Jet.OLEDB.4.0");
     strSql += _T("'");
     strSql += _T(",");
     strSql += _T("'");
     strSql += _T("Data Source=");
     strSql += _T('"');
     strSql += _T(OriginalBase->m_sdb);
     strSql += _T('"');
     strSql += _T(";");
     strSql += _T("User ID=Admin;Password=");
     strSql += _T("')...temp");
     
     这条SQL语句为“select * into aaaa from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\Documents and Settings\Administrator\桌面     \test.mdb";User ID=Admin;Password=')...temp”
     链接代码为:
     m_RecordsetPtr.CreateInstance(__uuidof(AdoNS::Recordset));
     m_RecordsetPtr = m_ConnectionPtr->Execute((_bstr_t)strSql,&vRowAffected,AdoNS::adCmdText); 
     请问ADO是否支持带有OpenDataSource()的语句。如果支持请问,此部分代码有问题吗?
     

解决方案 »

  1.   

    为什么要这么做呢?adp没有问题,mdb必须是sql服务器所在的机器不是你的机器
      

  2.   

     程序要将含有300万条的Access数据,导入的SQLSERVER中。如果采用插入数据的方式是比较慢的,所以才有了这种方式。
     SQL服务器在本机上。
      

  3.   

    这样导也不会快的,sql版本多少?
      

  4.   

    SqlServer2000啊。
    还有更好的办法吗?
      

  5.   

    你可以考虑dts包,然后用程序调用dtsrun来运行包。
      

  6.   

     这样不行啊,如果SQLSERVER服务器在另一台电脑上,我无法调用DTS数据包啊。
     还有别的方法吗?