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("数据库连接失败!\r\n错误信息:%s", e.ErrorMessage());

21             AfxMessageBox(errormessage);

22 }       

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

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

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

 

你可能感兴趣的:(oracle)