adodb15.dll我已经引入了
AfxOleInit();我也做了.
 try{
  m_pConnection->ConnectionString="\\cc.udl";(程序执行到这一步就出现异常了)
   m_pConnection->Open("","","",NULL);
}udl文件的连接我已经测试过了,没问题.着急啊,各位帮忙 !!

解决方案 »

  1.   

    _ConnectionPtr m_pDBConn; 
    m_pDBConn.CreateInstance(__uuidof(Connection)); 
    m_pDBConn->ConnectionString ="File Name=c:\mydir\my_data1.udl"; 
    m_pDBConn->Open("","","",NULL); 
      

  2.   

    谢谢最熟悉的陌生人,不过你写的那四行程序,我都写了,没用阿。执行m_pDBConn->ConnectionString ="File Name=c:\mydir\my_data1.udl"时,
    就会出现错误了; 
      

  3.   

    m_pDBConn->ConnectionString ="File Name=c:\mydir\my_data1.udl"改为:
    m_pDBConn->ConnectionString ="File Name=c:\\mydir\\my_data1.udl"
      

  4.   

    谢谢jinxuliang,不过应该不是这个原因,我已经尝试过了。
      我用debug追踪,发现m_pDBConn有个m_pinterface变量,
          好像这个变量是NULL就会出错。
         且捕获的e=E_POINTRT?为什么?????
      

  5.   

    我如何判断m_pDBConn.CreateInstance(__uuidof(Connection));是否 执行 成功了啊?
      

  6.   

    _ConnectionPtr m_pDBConn = NULL; 
    先把这个智能指针设空,然后在CreateInstance的下一行断点,如果不确定就一步步下断点,查看变量窗口的值
      

  7.   

    谢谢一夜听雨,我又发现我的CreateInstance操作没有成功。这是为什么啊?
      

  8.   

    不太清楚你是什么情况   对照一下上面laiyiling(最熟悉的陌生人) 的看看
      

  9.   

    HRESULT hRet = m_pDBConn.CreateInstance(__uuidof(Connection));
    if (FAILED(hRet))
    {
        // 出错处理;
    }
    下面是我的一段执行良好的程序:
    CString m_strConnect;
    m_strConnect.Format("Provider=OraOLEDB.Oracle; Data Source=%s; User ID=%s; PassWord=%s",
    strDataSource,
    strUserID,
    strPassWord); try
    {
    // _ConnectionPtr
    HRESULT m_hRet = m_pOraConnect.CreateInstance(__uuidof(Connection));
    if (FAILED(m_hRet))
    {
    AfxMessageBox("连接Oracle数据库时出现异常,错误代码001!");
    return FALSE;
    }
    m_hRet = m_pOraConnect->Open(m_strConnect.GetBuffer(0), "", "", adModeUnknown);
    if (FAILED(m_hRet))
    {
    AfxMessageBox("连接Oracle数据库时出现异常,错误代码002!");
    return FALSE;
    }
    // _RecordsetPtr
    m_hRet = m_pOraRecordset.CreateInstance(__uuidof(Recordset));
    if (FAILED(m_hRet))
    {
    AfxMessageBox("连接Oracle数据库时出现异常,错误代码003!");
    return FALSE;
    }
    }
    catch(_com_error e)
    {
    AfxMessageBox(e.Description());
    return FALSE;
    }以前也遇到使用.udl文件来连接,但是好像也是出了问题,就是连不上.