• Delphi UniDAC3007 访问Oracle数据库(使用 Direct 模式)


    2010年04月01日 星期四 22:45

    当你选择Oracle作数据库服务器时,客户端一般需要装一个 客户端,而且还要做连接配置,尤其是C/S模式,客户端多的时候非常不便。当然,网上也有一个10M左右的Oracle精简客户端,性能和稳定性和官方版差不多。

    Oracle还提供了Direct Mode(直连模式),只要你的客户端机子支持TCP/IP协议,完全可以不用安装Oracle客户端及其连接配置。幸运的是,UniDAC也提供了Direct Mode。只需要如下简单配置:

    1、在TUniConnection控件上点击右键,选择菜单“Connection Editor”,在弹出的对话框中选择分页“Options”,“Options for Provider”选择“Oracle”,然后在其详细的配置表中,将Direct设置为True。

    2、TUniConnection的属性和一般连接oracle差不多,只是将其Server属性改为:

    TUniConnection.Server :='IP:Port:SID';

    如:

    TUniConnection.Server :='192.168.1.1:1521:WEB';

    具体举例:

    uniconnection1.server:='192.168.1.1:1521:web';

    uniconnection1.username:='username';

    uniconnection1.password:='password';

    而且,因为 uniquery 有 FetchRows 属性,可以设定一次获取记录的行数。

    此属性同 ODAC 的组件属性,其实我们一般打开数据一次不需要太多,太多也是一批一批查阅,

    所以这个属性非常人性化,另外,对比了一下 uniDAC Dricet模式和 ADO db OLE读 ORACLE的效率,发觉即使将 FetchRows 设置为最大,其效力也高于 ADO 通过 ODBC封装对ORACLE数据库的读取效率, Provider=OraOLEDB.Oracle.1;Password=***;Persist Security Info=True;User ID=***;Data Source=**** 。

    另外,uniDAC获取SQL server的效率也高于 ADO for sql DB OLE ;

    但是有一点是uni 低于ado的,那就是对 ACCESS 的访问,试过多次,访问 单机桌面数据库,uni 低于Ado。

    以上是本人草率的体验,不当之处请包涵: saigesj@163.com ; QQ 965578819 。

    *********************************************************************************

    另外,发现uniquery 和 unitable 的 SpecificOptions 属性,需要设置 FetchAll=False

    才能使 FetchRows 的设置生效,而默认情况下, oracle 是设置

    Oracle.FetchAll=False;

    而对去 sql server 和 mysql 等,却是设置的 XXX.FetchAll=True 。  

  • 相关阅读:
    ArrayList和Vector的区别?HashMap和Hashtable的区别?
    试题:关键字public, private, protected的区别?以及不写时默认是什么?
    试题:用JavaScript实现密码验证功能
    RPC和RMI的区别(Difference Between RPC and RMI)
    js中从blob提取二进制
    netty 3.9.2 UDP协议服务器和客户端DEMO
    Java NIO的多路复用及reactor
    android屏蔽home键的实现
    搜索引擎对相似图片搜索识别的原理(一)
    代理模式(设计模式)
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/2495958.html
Copyright © 2020-2023  润新知