64位程序,利用ADO连接Oracle数据库
刚好手头项目解决了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属性的最前面即可。
64位程序,利用ADO连接Oracle数据库的更多相关文章
- win8 64位使用plsql developer连接oracle数据库问题
问题:win8的64使用位系统plsql developer本地连接oracle莫名其妙的问题发生在数据库时.错误消息框,甚至可能是空的. 原因:它表示,互联网,的原因,预计在64位系统安装在64位O ...
- Win7 64位安装VS2013无法连接远程数据库
win7 64位安装vs2013后连接远程数据库出现下面的问题:A first chance exception of type 'System.AccessViolationException' o ...
- 使用ADO连接oracle数据库“未找到提供程序。该程序可能未正确安装”解决方案
问题描述:VS2010开发的C++程序,在一台Win7旗舰版的已安装Oracle客户端的PC上连接不上Oracle,提示“未找到提供程序.该程序可能未正确安装”,其他语言编写的程序比如C#是可以成功连 ...
- 利用jdbc连接oracle数据库
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行SQL语 ...
- 利用JDBC连接Oracle数据库(转)
http://blog.csdn.net/wahaha1_/article/details/8512438 JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 J ...
- 64位系统下powerdesigner15连接oracle odbc
操作系统:win2008 64 Oracle版本:64位11g PowerDesigner版本:15.1 问题描述:因为PowerDesigner是32的程序,连接数据库会默认开启32位的ODBC,因 ...
- 【JDBC】java程序通过jdbc连接oracle数据库方法
版权声明:本文为博主原创文章(原文:blog.csdn.net/clark_xu 徐长亮的专栏).未经博主同意不得转载. https://blog.csdn.net/u011538954/articl ...
- CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)
用qt连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r ...
- 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题
在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...
随机推荐
- java io系列19之 CharArrayWriter(字符数组输出流)
本章,我们学习CharArrayWriter.学习时,我们先对CharArrayWriter有个大致了解,然后深入了解一下它的源码,最后通过示例来掌握它的用法. 转载请注明出处:http://www. ...
- web.xml 文件头
Servlet 2.3 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN ...
- Android开发入门经典实例
开发实例概述 今天带大家做一个简单的Android App,这个App会显示创新工程实践老师们的照片和信息,不妨先看一看效果: 虽然这个App非常简单,但是涉及到了Android开发中的一些关键知识, ...
- Python线程和协程-day10
写在前面 上课第10天,打卡: 感谢Egon老师细致入微的讲解,的确有学到东西! 一.线程 1.关于线程的补充 线程:就是一条流水线的执行过程,一条流水线必须属于一个车间: 那这个车间的运行过程就是一 ...
- Consul 域名服务
=============================Web请求的全过程(包含DNS) =============================完整过程参考 https://blog.csdn. ...
- SQL Server进阶(八)查询——开窗函数、四大排名函数、透视数据、逆透视数据
概述 ROW_NUMBER() OVER(PARTITION BY CustId ORDER BY ID DESC) https://www.jb51.net/article/75533.htm 开窗 ...
- 开源框架.netCore DncZeus学习(一)npm安装
今天看到一个不错的开源项目DncZeus, https://github.com/lampo1024/DncZeus 整个界面挺漂亮,而且权限做到了按钮级别,功能也较容易扩展,刚好学习VUE纯看文章很 ...
- Quartz.NET 配置文件详解
Ø 前言 在之前的 使用 Topshelf 结合 Quartz.NET 创建 Windows 服务 文章中,使用到了 Quartz 的两个配置文件 quartz.config 和 quartz_jo ...
- lua 立即执行函数
背景 不同文件中,lua提供模块写法, 使用local修饰,可以将变量或者函数,声明为模块内有效,例如 模块暴漏变量使用 return 表的方式. local aafunc = function() ...
- java保留字
//*********java保留字 //*********访问控制 private //私有 protected //受保护 public //公共 //*********类.方法和变量修饰符 ab ...