• vc++用ADO方式连接oracle问题


      今天装了个oracle客户端,准备写个访问远程oracle的程序。用的是vs2010,采用ADO的连接方法连接oracle,结果运行的时候总是报下面的错:

    从提示可以看出是没有找到OraOLEDBups.dll这个动态链接库。

      我的连接oracle数据库的代码是:

     1 try{
     2             hr = m_pConnDes.CreateInstance("ADODB.Connection");
     3             if(FAILED(hr))    return ;
     4 
     5             CString sDNS;
     6             sDNS.Format("Provider=OraOLEDB.Oracle;Persist Security Info=False;
     7                         User ID=%s;Password=%s;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=%s)(PORT=%s)))(CONNECT_DATA=(SERVICE_NAME=%s)))",
     8                         sUserId,sPassword,sDBSource,"1521",sDBName);
     9 
    10             hr = m_pConnDes->Open((_bstr_t)sDNS,(_bstr_t)sUserId,(_bstr_t)sPassword,adModeUnknown);
    11 
    12             strInfo.Format("%s:%s",sDBSource,sUserId);
    13             m_strDb1 = strInfo;
    14 
    15             if(FAILED(hr))    return ;
    16 
    17         }catch(_com_error e)
    18         {
    19             CString errormessage;
    20             errormessage.Format("数据库连接失败!
    错误信息:%s", e.ErrorMessage());
    21             AfxMessageBox(errormessage);
    22         }                

      程序采用的是OraOLEDB.Oracle连接方式,需要OraOLEDBups.dll等驱动程序。开始以为是自己电脑上没有这个文件,后来到自己装的oracle客户端的文件夹的bin的文件夹中查看,发现这个文件时有的。

      

      看来是程序找不到OraOLEDBups.dll这个文件的路径。然后我到path中查看是否包含了bin这个目录,发现原来我的path中没有这个目录,然后把这个目录加到path中,在编译运行程序,还是报同样的错误。后来才想到我改path后没有重启vs,导致vs读取的path还是原来的值,重启vs后再运行程序就不报错了(自己不是很细心啊!!!)。

  • 相关阅读:
    复合索引、主键
    使用PDO持久化连接
    使用PDO连接多种数据库
    数据库连接池php-cp介绍
    php有三种工作模式
    小型Web应用扫描工具Grabber
    Web目录全能扫描工具DirBuster
    子域名/目录暴力工具Gobuster
    Xamarin XAML语言教程构建ControlTemplate控件模板 (二)
    Xamarin XAML语言教程构建ControlTemplate控件模板
  • 原文地址:https://www.cnblogs.com/chengxuyuancc/p/3194240.html
Copyright © 2020-2023  润新知