64位程序,利用ADO连接Oracle数据库

刚好手头项目解决了ADO连接Oracle数据库的问题,记录下来,防止忘记。

项目情况:用32位环境完成算法动态库,结果后来需要升级到64位环境,由64位的软件来调用,则在64位设置下生成算法动态库,发现数据库连接失败。数据库使用的是Oracle11,而连接技术使用的是比较熟悉的ADO。

1.首先怀疑的是ADO预编译所引用的msado15.dll版本问题,找来了64位msado15.dll,一样重现问题。

2.怀疑是连接语句依靠的\network\admin\tnsnames.ora文件不对,所以在程序中写死IP和端口,仍然重现问题。

其间忙于其他项目,只有用32位代替跑着,将其磕置。结果意外发现了64位在两位同事的电脑上能顺利运行,但在有些电脑上又出问题。所以确定为系统环境的问题,最终定位到ODAC。


问题最后解决了,但是还是未能完全脱离配置

1.连接语句写成这样,避免依赖tnsnames.ora文件

Provider=OraOLEDB.Oracle.1;Password=密码;Persist Security Info=True;User ID=用户名;\
Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521)) )(CONNECT_DATA = (SID = 数据库)))\"

其中可以将用户名、密码、数据库ID、IP、端口这些提出来写成配置文件,方便更改。

2.安装对应的ODAC,64位的下载地址http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html。相对来说,32位的ODAC是EXE安装文件,简单粗暴,直接自动安装好一切,所以当时没有出问题。64位的ODAC驱动是由Oracle官方提供的XCOPY版本,安装过程参考微软官方http://support2.microsoft.com/kb/2831123/zh-tw

(1)解压XCOPY

(2)用命令行CD到(1)的目录下

(3)命令行运行其中的install.bat文件:install.bat all c:\oracle\ODAC_64 odac

(4)C盘出现目录c:\oracle\ODAC_64,进行系统环境配置:path里面增加C:\oracle\ODAC_64和C:\oracle\ODAC_64\bin

(5)完成


最后,这样的配置在一台机器上出现了报错的问题,发现是由于该机器上安装的东西过多,path环境混乱,Oracle版本指向不明,所以将C:\oracle\ODAC_64和C:\oracle\ODAC_64\bin这个路径放到path属性的最前面即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值