代码:_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: 找不到指定的模块。请问,该如何解决这个问题呢? 谢谢!!

解决方案 »

  1.   

    copy from https://sh.dream4ever.org/showthread.php?t=223215
    我是这样解决的:先安装了“管理员 (555MB)”,然后用Net Configuration Assistant配置了连接参数,然后再用VC写的程序去连接,竟然还提示“OraOLEDBpus10.dll 找不到指定的模块”,我查找了一下这个文件,在Oracle的安装目录的BIN目录下明明有的,而且BIN目录被添加进了环境变量的Path中,这样都找不到?!于是我就手工把这个文件拷贝到系统盘的system32目录下,再次运行VC写的程序,这回终于不报找不到Or aOLEDBpus10.dll了,但是这回报了“OraOLEDB10us.dll 找不到指定的模块”,我晕,情况和上一个文件一样,于是我做了同样的处理,也放到了system32目录下,这回终于完全搞定了,问题解决!可是我到现在还没搞明白,为什么会报这两个错?安装了这么多东西了,也添加到了环境变量的Path中,难道是我客户机的系统有问题?或者是我一次又一次地在客户机上安装、卸载Oracle客户端组件造成的?
      

  2.   

    先用 sqlplus 试试,确定了 数据库客户端没问题了。再试程序。
      

  3.   

    把这个dll文件与编译出来的执行文件放在同一个目录下面,试一试