程序是这样的:
CDataBase m_database;
CString str_connect="DSN=aaa;UID=bbb;PWD=ccc";
bool bRet;
try
{
    bRet=m_database.OpenEx(str_connect);
}
catch(CDBException *e)
{
    AfxMessageBox("数据库连接错误:"+e->m_strError);
}
其中:
ODBC:aaa经过oracle ODBC test测试连接成功。
但是程序运行结果是:
弹出对话框:数据库连接错误:ORA-06413 连接未打开 驱动程序的SQLSetConnectAttr失败。
请各位帮帮我。谢谢

解决方案 »

  1.   

    看看这个,
    http://www.codeproject.com/database/MyRecordset.asp
      

  2.   

    不行,那样的话改动太大了,我的程序一开始连接的是sybase使用odbc,现在改用oracle就这样了,帮帮我吧,另外,谢谢你风中王子
      

  3.   

    CDatabase m_gDatabase;
    void CUseOracleView::OnLButtonDblClk(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    CString strDSN="DSN=Test_Emp;UID=scott;PWD=tiger";
    CString strError;
    if(m_gDatabase.OpenEx( strDSN,CDatabase::openReadOnly |CDatabase::noOdbcDialog ))
    {
      try
      {
    m_gDatabase.ExecuteSQL("SELECT * FROM emp");
    MessageBox("Success linking to the oracle9i");
      }
      catch(CDBException e)
      {
    strError.Format("When linking database ,have occured error: %d ",e.m_nRetCode);
    MessageBox(strError);
     }
    }  
    CView::OnLButtonDblClk(nFlags, point);
    }
    ---------------------
    添加数据源的时候使用oracle in orahome 不要使用oracle odbc driver
    一定要指定好service name