zoukankan      html  css  js  c++  java
  • 64位程序,利用ADO连接Oracle数据库

     
     

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

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

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

    2.怀疑是连接语句依靠的 etworkadmin nsnames.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:oracleODAC_64 odac

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

    (5)完成

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

  • 相关阅读:
    SQLMAP注入教程-11种常见SQLMAP使用方法详解
    VS2012/2013/2015/Visual Studio 2017 关闭单击文件进行预览的功能
    解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题
    Spring Data JPA one to one 共享主键关联
    JHipster 问题集中
    Spring Data JPA 定义超类
    Spring Data JPA查询关联数据
    maven命名
    maven仓库
    Jackson读取列表
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4807137.html
Copyright © 2011-2022 走看看