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属性的最前面即可。

  • 相关阅读:
    paip.重装系统需要备份的资料总结..
    poj3078
    poj3009
    poj2151
    poj3274
    poj3436
    VC++:打开、保存文件对话框和浏览文件夹对话框
    目前所有的视频格式都有哪些?
    CMSHFlexGrid 类用法
    Matlab的ActiveX接口_百度文库
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4807137.html
Copyright © 2011-2022 走看看