我在delphi中用ADO的Microsoft OLE DB Provider for Oracle 连接Oracle时出错信息:Connection failed becouse of error in initalizing Provider. Oracle error occurred ,but error message could not be retrieved from Oracle   ,用其他方法 BDE 或者 ODBC 或者Oracle Provider for OLE DB 都可以,怎么解决?

解决方案 »

  1.   

    我用的是Oracle自带的OLE DB驱动程序,我的连接字符串是这样写的:
    前面的Password,Username,ServerName是存在配置文件中的变量//    Result := 'Provider=MSDAORA.1;Password=' + Password + ';Persist Security Info=True;User ID=' + UserName + ';Data Source='+ServerName+';Extended Properties=""';
    //这里用的就是MS提供的ORACLE连接方式,但在ORACLE中发现它不能自己释放掉SESSION,而且同一个程序中每一个ADO组件都会创建一个SESSION,太浪费资源
        Result := 'Provider=OraOLEDB.Oracle.1;Password=' + Password + ';Persist Security Info=True;User ID=' + UserName + ';Data Source='+ServerName+';Extended Properties=""';
    //用上面的就没有这些问题了我用的是 Oracle 8i ,9i的数据库
    Delphi 6.0 + sp2
    ADO 2.7
      

  2.   

    我用'Provider=OraOLEDB.Oracle.1;‘的方法可以连接上Oracle数据库,但是我过处编的有些程序又不能用了,只好用'Provider=MSDAORA.1;’进行连接,编译了的 .EXE 文件在其他机器上用没有问题!
      

  3.   

    给你一个建议,重新安装oracle的驱动
      

  4.   

    我的电脑就是oracle服务器,如果oracle的驱动不行,客户端还能用?
      

  5.   

    我的没问题
    delphi7+mdac2.7+oracle9i
    用的就是 Drate(小虫) 的第一种连接
      

  6.   

    我都重新安装过 Delphi 和 ADO 2.7 都不行,以前还从来没有碰到这种鬼问题!系统已经完成了,更改连接方式肯定不现实!希望各位帮帮忙!谢谢了!
      

  7.   

    从理论上来说,这两种连接方式都是没有问题的,从楼主的问题上来看,好像这个问题不是ORACLE的问题,而是ADO的问题了
    楼主再用点耐心,慢慢调试一下吧,我记得我刚开始用的时候也出现了很多问题,我也发过贴问的,不知道现在还找不找的到这个贴,(找不到了)