本帖最后由 dpale 于 2019-1-20 14:59 编辑
研究了很长时间,我大概说一下我的配置过程 希望对大家有帮助
服务器端 IP 192.168.1.13 安装的数据库是Oracle win32 10.2.0.1.0 防火墙加上端口1521
服务器数据库创建了一个表book(id, name) 插入了一行数据("1", "AU3TEST")
客户端IP 192.168.1.12 安装的是Oracle instantclient10.2.0.5(basic和odbc两个包) 解压到统一路径
比如 f:\data_conf
运行cmd 并切换到该目录下 运行odbc_install.exe 会提示成功信息
复制服务端安装目录下的Network\ADMIN\tnsnames.ora文件到客户端目录
把里面的Host改为服务器IP
客户端添加环境变量 ORACLE_HOME LD_LIBRARY_PATH TNS_ADMIN 三个环境变量,键值都是f:\data_conf 并将ORACLE_HOME加入到path中
添加环境变量NLS_LANG,键值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
现在配置基本完成。可以试验一下是否可以连接成功
打开控制面板-管理工具-数据源 -添加
选择驱动为 Oracle In instantclient10_2
输入Data Source Name 为test
TNS Service Name为下拉选项中的ORCL
UserID 为system
点Test Connection在弹出的对话框中输入密码oracle(我服务器密码设置的是oracle)
连接成功会提示 connection success
然后就可以编写程序了 代码如下example()
Func example()
$strDrv1 = "OraOLEDB.Oracle.1"
$strDataSour = "test"
$strUID = "system"
$strPWD = "oracle"
Local $ado = ObjCreate("ADODB.Connection")
Local $strConn = "Driver = " & $strDrv1 & ";Data Source = " & $strDataSour & ";" & _
"User ID = " & $strUID & ";Password = " & $strPWD & ";Persist Security info = True;"
With $ado
.ConnectionString = $strConn
.Open
EndWith
Local $adors = ObjCreate("ADODB.Recordset")
Local $strsql = "select * from book"
With $adors
.ActiveConnection = $ado
.Source = $strsql
.Open
EndWith
Local $num_adors = $adors.Fields.Count - 1
ConsoleWrite($num_adors & @CRLF)
While Not $adors.EOF
For $i = 0 To $num_adors
ConsoleWrite($adors.Fields($i).Value & @TAB)
Next
ConsoleWrite(@CR)
$adors.MoveNext
WEnd
EndFunc
|