Delphi下使用Oracle Access控件组下TOraSession控件链接

时间:2021-05-23 09:12:09

Delphi下使用Oracle Access控件组下TOraSession控件链接
数据库,使用
  orsn1.Options.Direct:=true;
  orsn1.Server:=IP:Port:SID;
  orsn1.Username:=UserName;
  orsn1.Password:=PassWord;
  orsn1.Connect;
即可链接成功,这是使用SID方式链接的。
但如果登陆数据库使用服务名方式,程序死活链接不上,原因,
说是因为Delphi ODAC与Oracle RAC
Direct mode does not support RAC.YOU can connect only to one fixed server
in RAC.
ODAC 控件中的Direct模式不支持Oracle RAC,只能够链接一个确定的RAC实例。
如果要使用ODAC控件连接Oracle RAC,则需要Oracel安装客户端,并且不使用Direct模式,
链接方式与ADO连接Oracle一致。

根据说明,安装Oracle客户端,安装好之后,查找tnsnames.ora文件
在文件增加

DMSII=
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.73)(PORT = 1521))
              (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.74)(PORT = 1521))
               (LOAD_BALANCE = ON)
              (FAILOVER = ON)
             (CONNECT_DATA =
                      (SERVICE_NAME = DMSII)
                      (FAILOVER_MODE =
                              (TYPE = select)
                               (METHOD = BASIC)
                             (RETRIES = 30)
                              (DELAY = 5)
                      )
             )
       )
注意,DMSII前不能有空格
程序代码修改
  orsn1.Username:=UserName;
  orsn1.Password:=PassWord;
orsn1.Server:=服务名;
  orsn1.Connect;
链接即可。