如题,在VC6.0下利用ADO访问ORACLE,在32的XP下可以正常完成功能,可在64位下的WIN7下总是有问题(先是在XP下编写调试的),一运行程序就弹出错误框:未找到提供程序,该程序未正确安装。
程序部分代码如下:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
        
BaliseLocation bal;
//_CommandPtr m_pCommand;

m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
//m_pCommand.CreateInstance("ADODB.Command"); 

try
{
  _bstr_t strConnect="Provider=OraOLEDB.Oracle.1;Password=tiger;User ID=scott;Data Source=orcl;Persist Security Info=True";
   m_pConnection->Open(strConnect,"","",-1);
}
catch(_com_error e)
{
  MessageBox(NULL,e.Description(),0,0);
}
执行OPEN函数,总是报异常。
在网上找了几天也没找到相应的解决方法,望高手解决下,谢谢

解决方案 »

  1.   

    会不会是不存在32位的ado组件呢
      

  2.   

    怎么查看存不存在32位的ADO组件?还有如果不存在,是不是在创建实例时就会出错?
      

  3.   

    驱动,什么意思,在XP下不需要啊,难道在64位机子上需要?而且本地装有Oracle客户端
      

  4.   

    我觉得要么是Oracle驱动没装好,要么是连接字符串没写对。我以前也出现过这个错误,后来就疯狂的安装/卸载oracle
      

  5.   

    是吗,你以前也是在64位的机子上吗,那应该不是VC6.0与64位机子的问题吧?
    连接字符串没写对的话,应该在XP下也会问题啊?可我在XP下没问题
      

  6.   

    你需要安装32位的oracle客户端.
      

  7.   

    要么使用32位ORACLE客户端,对应你的32位应用程序
    要么把你的应用程序编译成64位,对应64位ORACLE客户端
      

  8.   

    楼主啊,问题解决了吗?
    我是在xp,03上面连接oracle都没问题,放到server08 x64上面,连接数据库的时候就报错。还有 程序编译成64位,对应64位ORACLE客户端,vs2008好像不支持编译64位的程序啊。