delphi与oracle的连接

  • 格式:pdf
  • 大小:105.33 KB
  • 文档页数:5

delphi与oracle的连接

Provider=MSDAORA.1;Password=manager;User ID=system;pDATA SERVER=192.1.1.3;Data

Source=FWQPORA1;Extended Properties=;Persist Security Info=False

这是我的连接成功的实例SERVER NAME=test//服务名

USER NAME=scott//⽤户名

NET PROTOCOL=LISTENER1//监听程序

OPEN MODE=READ/WRITE

SCHEMA CACHE SIZE=8

LANGDRIVER=

SQLQRYMODE=

SQLPASSTHRU MODE=SHARED AUTOCOMMIT

SCHEMA CACHE TIME=-1

MAX ROWS=-1

BATCH COUNT=200

ENABLE SCHEMA CACHE=FALSE

SCHEMA CACHE DIR=

ENABLE BCD=FALSE

ENABLE INTEGERS=FALSE

LIST SYNONYMS=NONE

ROWSET SIZE=20

BLOBS TO CACHE=64

BLOB SIZE=32

OBJECT MODE=TRUE

PASSWORD=tiger//密码

Provider=OraOLEDB.Oracle.1;Persist Security Info=True;

Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST

= )(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME

= )));User ID=<⽤户名>;Password=

Provider=OraOLEDB.Oracle.1;Persist Security Info=True;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =

(PROTOCOL = TCP)(HOST=192.1.1.3)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = FWQPORA1)));User

ID=system;Password=manager

Provider=MSDAORA.1;Persist Security Info=True;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =

(PROTOCOL = TCP)(HOST=192.1.1.3)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = FWQPORA1)));User

ID=system;Password=manager

=============

不安装客户端,使⽤ADO访问Oracle 8.1.6数据库解决⽅案。

最近因为⼯作需要,花了些时间研究了⼀下不安装客户端,如何使⽤ADO访问Oracle 8.1.6数据库,整理了⼀下,只需要43个

⽂件(8.46 MB),添加若⼲注册表内容,注册⼀个⽂件,就可以了做到了,现在把这些完整贴出来,希望有⼈能够⽤的到。

另外:Oracle 8.1.6驱动也可以⽤于连接Oracle 9i的数据库,但我没有⽤下⾯的“五、程序中ADO连接字符串写法”测试过,现

在没有9i的环境,还望有条件的朋友帮忙测试⼀下。

Oracle 8.1.6 OLEDB 驱动

⽬录、⽂件结构:主⽬录(34⽂件)oci.dll

OCIW32.DLL

oracle.key

oraclient8.dll

oracommon8.dll

ORACORE8.DLL

orageneric8.dll

oraldapclnt8.dll

oran8.dll

ORANCDS8.DLL

orancrypt8.dll

oranhost8.dll

oranl8.dll

oranldap8.dll

ORANLS8.DLL

orannds8.dll

orannms8.dll

orannzsbb8.dll

oranoname8.dll

oranro8.dll

orantns8.dll

OraOLEDB.dll

oraoledbgmr.dll

OraOLEDBPUS.dll

OraOLEDBrmc.dll

OraOLEDBrst.dll

OraOLEDButl.dll

OraOLEDBzhs.dll

ORAPLS8.DLL

ORASLAX8.dll

ORASQL8.DLL

ORATRACE8.DLL

oravsn8.dll

orawtc8.dll

|

|--bin(1⽂件)

orantcp8.dll

|--ocommon

|--nls

|--ADMIN

|--DATA(8⽂件)

LX00001.NLB

LX00023.NLB

LX10001.NLB

LX10035.NLB

LX1BOOT.NLB

LX20001.NLB

LX20354.NLB

LX60354.NLB

以上为所有所需⽂件,其中OraOLEDBzhs.dll好像不要也⽆所谓,反正也不⼤,看⽂件名也是ADO需要的,就带上了;OraOLEDBrmc.dll好像也可以不要,但是我的程序dll中链接Oralce少了这个⽂件就会跳出个⾮法操作,可继续也没问题(模模

糊糊的说了两个“好像”,其实我也记不清是不是这两个⽂件了,⼏天前反复了n次试出来的,当时没记录,嘿嘿……)。

配置、操作过程:

⼀、将以上⽂件及⽬录结构拷贝到⼀个⽬录⼆、注册OraOLEDB.dll⽂件:REGSVR32.EXE OraOLEDB.dll。

三、路径:Win9x需要修改Autoexec.bat⽂件的环境变量path,只需在批处理⽂件中增加⼀⾏:path=;%path%,重启系统后

⽣效。Win2000、WinXP需要在“我的电脑”->“属性”->修改环境变量中的path变量,⼿⼯修改后马上⽣效⽆须重启,这个变量也可

通过修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment下path的值设

置,但需要重启系统后⽣效。

说明:如果把这些⽂件和⽬录结构拷贝到系统⽬录下(Win2000为Winnt\System32、WinXP为\Windows\System32、Win9x

为\Windows\System)则可以不需要设置环境变量path。

四、修改注册表,最后部分为需要修改的注册表内容,把⽂本保存为reg⽂件导⼊即可,其中两处C:\\Winnt\\System32需要修

改成⽂件实际拷贝的⽬录。

五、程序中ADO连接字符串写法:

Provider=OraOLEDB.Oracle.1;Persist Security Info=True;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =

(PROTOCOL = TCP)(HOST = )(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =

称>)));User ID=<⽤户名>;Password=

在<>中填进相应的值,就可连接上Oracle数据库了。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]

"ORACLE_HOME"="C:\\Winnt\\System32"

"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OLEDB]

"CacheType"="Memory"

"ChunkSize"="100"

"DistribTX"="1"

"FetchSize"="100"

"OSAuthent"="0"

"PLSQLRSet"="0"

"PwdChgDlg"="1"

"SchRstLng"="10000"

"UserDefFn"="0"

"DisableRetClause"="1"

"VCharNull"="1"

"TraceCategory"="0"

"TraceFileName"="c:\\OraOLEDB.trc"

"TraceLevel"="0"

"TraceOption"="0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle.1]

@="Oracle Provider for OLE DB"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle.1\CLSID]

@="{3F63C36E-51A3-11D2-BB7D-00C04FA30080}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle]

@="Oracle Provider for OLE DB"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\OraOLEDB.Oracle\CLSID]

@="{3F63C36E-51A3-11D2-BB7D-00C04FA30080}"