而且从Oracle客户端可以访问数据库的表,但是在应用程序中,在连接数据库的时候就会连不上。不知道什么原因?

解决方案 »

  1.   

    把你的连接字符串中的.1去掉,也就是换成这样的连接字符串:_bstr_t strConnect = "Provider=OraOLEDB.Oracle;Password=maj;Persist Security Info=True;User ID=maj;Data Source=MEDIA;";然后在编译运行。
      

  2.   

    不行呀,还是不行,不过从oracle客户端可以访问oracle数据库,不知道缺什么?用Depends 查,也只能查静态库,而且这些dll已经都有了
      

  3.   

    m_pConnection.CreateInstance(__uuidof(Connection));
    m_pConnection->ConnectionTimeout = 8;
    HRESULT hRes;
    try                 
    {

               hRes=m_pConnection->Open("Provider=OraOLEDB.Oracle.1;Password=maj;
                                   Persist Security Info=True;User ID=maj;Data       
                                    Source=MEDIA;","","",adModeUnknown); _bstr_t strConnect = ConnectStr;
    _bstr_t DBUser = strDBUser;
    _bstr_t DBPwd = strDBPwd; hRes=m_pConnection->Open(strConnect,DBUser,DBPwd,adModeUnknown);

    }
    catch(_com_error e)
    {
    MessageBox("the database link error!", MB_ICONWARNING | MB_OK);
             OnCancel();
    }  if (SUCCEEDED(hRes))
    {
             }
    奇怪的是debug跟踪的时候,会弹出MessageBox,但是还会进入SUCCEEDED的判断分支,太奇怪了,有没有人能解释一下 扑捉到的_com_error都是些什么错误?为什么有错误,还能连得上数据库?
      

  4.   

    catch(_com_error e)
    {
     AfxMessageBox(e.Description());
             OnCancel();
    }       
    提示错误是:对象打开,不允许操作。这是什么原因造成的?