C++使用ADO连接ORACLE在WIN7下正常,在WIN10下异常,ADO的错误信息为:
ADODB.Connection
未找到提供程序,该程序可能未正确安装。
原因详解:由于ODAC的install.bat会调用configure.bat,而configure.bat会注册OraOLEDB11.dll(regsvr32 /s "%BAT_DIR%bin\OraOLEDB11.dll"),但是非管理员模式下regsvr32是不会注册成功的,并且regsvr32 /s又是忽略提示的,所以注册OraOLEDB11.dll是失败并且又不会报错。
综上,表像上是WIN10的问题,其实是所有未使用管理员权限安装ODAC的,都会出现此问题,只是WIN7正常情况下是使用管理员模式启动程序的而WIN10是普通权限。
解决方案:
1、安装ODAC时最好使用管理员权限。
2、若不小心使用了普通权限安装ODAC后,再使用管理员权限注册一下OraOLEDB11.dll也是可以的。
另,安装ODAC命令:install.bat all c:\oracle\ODAC_64 odac,还需配置PATH系统环境变量:c:\oracle\ODAC_64和c:\oracle\ODAC_64\bin。