C++连接Oracle提示找不到某个库

2012-11-12
  ConnectionPtr m_pConnection;
  m_pConnection.CreateInstance("ADODB.Connection");
  m_pConnection->ConnectionTimeout=30;
  //(1)
  string strConn1 = "Provider=oraoledb.oracle; Data Source=intdbt; User ID=data1; Password=data1;";
  m_pConnection->ConnectionString = strConn1.c_str(); //连接字符串
  HRESULT hr = m_pConnection->Open("", "", "", adConnectUnspecified); //打开
  //运行时,连接失败。提示:OraOLEDBpus10.dll: 找不到指定的模块。
  //(2) 尝试另一种方法:
  const char* pszConn = "Provider=OraOLEDB.Oracle.1;Persist SecurITy Info=true;User ID=data1;Password=data1;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.99.16)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME= intdbt)))"
  hr = m_pConnection->Open(_bstr_t(m_strConnString), "", "", adModeUnknown); //打开
  //运行时,同样连接失败。提示也为:OraOLEDBpus10.dll: 找不到指定的模块。
  请问,该如何解决这个问题呢?
  我是这样解决的:
  先安装了“管理员 (555MB)”,然后用Net Configuration Assistant配置了连接参数,然后再用VC写的程序去连接,竟然还提示“OraOLEDBpus10.dll 找不到指定的模块”,我查找了一下这个文件,在Oracle的安装目录的BIN目录下明明有的,而且BIN目录被添加进了环境变量的Path中,这样都找不到?!于是我就手工把这个文件拷贝到系统盘的 system32目录下,再次运行VC写的程序,这回终于不报找不到Or aOLEDBpus10.dll了,但是这回报了“OraOLEDB10us.dll 找不到指定的模块”,我晕,情况和上一个文件一样,于是我做了同样的处理,也放到了system32目录下,这回终于完全搞定了,问题解决!
  可是我到现在还没搞明白,为什么会报这两个错?安装了这么多东西了,也添加到了环境变量的Path中,难道是我客户机的系统有问题?或者是我一次又一次地在客户机上安装、卸载Oracle客户端组件造成的?
分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com