32位程序如何使用ADO访问64位Oracle数据库

环境:Win7 64位操作系统,64位Oracle数据库,VS2015开发环境

因工作需要,需要使用VC++编写MFC程序,程序使用ADO方式连接数据库,但在实际开发过程中,发现编绎成64位程序可以成功访问数据库,但编译成32位却无法连接数据库,经过不断的尝试,成功解决,把整个解决的方法整理如下,以备查询:

一、导入msado15.dll的不同

x64平台:
#import “c:\program files\common files\system\ado\msado15.dll” no_namespace rename(“EOF”, “EndOfFile”)
x86平台:
#import “c:\program files (x86)\common files\system\ado\msado15.dll” no_namespace rename(“EOF”, “EndOfFile”)

二、连接字符串的不同:

x64平台:
Provider=OraOLEDB.Oracle.1
x86平台:
Provider=MSDAORA.1;

三、需要单独安装32位客户端ODAC
1、下载Oracle Data Access Components(ODAC) Xcopy的两个版本:

x86平台:(我用到的是这个ODAC112030Xcopy_32bit.zip 51.4 MB)
http://www.oracle.com/technetwork/cn/database/windows/downloads/utilsoft-087491-zhs.html

x64:
http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

2、解压到任意文件夹(临时的,一会可以删掉)

1)、开始->运行->cmd->cd 该文件夹(建议打开cmd直接到cmd.exe目录下以管理员身份运行)

2)、运行命令 install.bat all {目标路径:也就是最后要被安装的目录} odac
例如:install.bat all c:\Oracle\ODAC1120320Xcopy_32bit odac 回车
32位程序如何使用ADO访问64位Oracle数据库

3、将其加入到系统环境变量中:(记得要跟实际路径要完全一样)
PATH的值中增加:
C:\Oracle\ODAC1120320Xcopy_32bit;C:\Oracle\ODAC1120320Xcopy_32bit\bin;
该值以实际情况为准。