sFile="c:/data.mdb"
hr=m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+sFile,"","",adModeUnknown);//连接数据库
sFile为Access数据库路径  出错!但是hr=m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data.mdb","","",adModeUnknown);//连接数据库
却没有错误!为什么呢?那么我怎么用变量表示连接数据库的路径呢?帮帮忙!

解决方案 »

  1.   

    sFile是否有多余的空格?或者不可显字符?是否多了个斜杠“\”?
    另外你在调用OPEN以前先把它合并成一个字符串试试,而不是在调用时用+合并
      

  2.   

    int DataAccess::ConnectDatabase(CString DBServer, CString DBName, CString UserName, CString PWD)
    {
        CString         strTmp;
    //    CString         SQLServerName;
        strTmp.Format( "driver={sql server};"
                               "server=%s;"
                               "Database=%s;UID=%s;PWD=%s;",DBServer,DBName,UserName,PWD);
        // Create Connection Object (1.5 Version)
    _variant_t  vtEmpty (DISP_E_PARAMNOTFOUND, VT_ERROR);
    _variant_t  vtEmpty2(DISP_E_PARAMNOTFOUND, VT_ERROR);
    _bstr_t     bstrEmpty(L""); try
    {
              Conn1.CreateInstance( __uuidof( ADODB::Connection ) );
              Conn1->ConnectionString =(LPCTSTR) strTmp;// bstrSQLServerConnect;
              Conn1->Open( bstrEmpty, bstrEmpty, bstrEmpty, -1 );
      return 0;
    }
    catch(_com_error & ce)
    {
    return 1;
    }

    将    strTmp.Format( "driver={sql server};"
                               "server=%s;"
                               "Database=%s;UID=%s;PWD=%s;",DBServer,DBName,UserName,PWD);
    改为你的格式,不行将你的代码贴上