递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 3591|回复: 1
打印 上一主题 下一主题

[视窗] 【方案】火山PC连接Oracle可能遇到的坑

[复制链接]

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
37275
跳转到指定楼层
楼主
发表于 2021-4-9 13:49:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 创世魂 于 2021-4-9 13:53 编辑

首先ado作为一个专业数据库中间件,可以连接多种数据库类型的库,本身肯定是没有任何问题的。
只要出现问题,那一般都是驱动问题,或者系统环境问题导致的。。。


下面整理一下可能遇到的问题:


一、 64位无法使用、32位程序可以用

火山PC连接oracle数据库方法: https://www.lkuaiy.com/ArticleForumInsidePage?id=16179397281233   

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

地址:https://www.cnblogs.com/liaocheng/p/4807137.html


防止上面地址失效,下面把二、里面的内容贴出来。




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


项目情况:用32位环境完成算法动态库,结果后来需要升级到64位环境,由64位的软件来调用,则在64位设置下生成算法动态库,发现数据库连接失败。数据库使用的是Oracle10,而连接技术使用的是比较熟悉的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属性的最前面即可。





安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

27

主题

307

帖子

3909

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3909
沙发
发表于 2021-4-9 20:40:05 | 只看该作者
连接成功了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-6-16 03:48 , Processed in 0.081067 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表