问题描述:使用PB做了一个C/S系统,客户端连接服务器端数据库,版本oracle 11g
解决方案:在客户端安装oracle客户端 instantclient,当oracle客户端连接上服务器端的数据库后,客户端的pb可以通过程序instantclient服务器端数据库自然连接。
一直把思路局限在以前PB如何设置程序本身来定位远程数据库,纠缠了很长时间,后来发现原因oracle负责连接可以很容易地解决问题。oracle客户端发布后PB程序可以直接进入远程数据库,无需更改。
具体步骤:
1. 服务器端oracle设置监控器,监控客户端发出的连接请求。
(1) 开始 --> 所有程序 --> Oracle-OraDb11g_home1 --> 配置和移植工具 --> Net Configuration Assistant
(2) 选择“监听程序配置”--> “添加” --> 监控程序名:LISTENER --> 选定协议:TCP --> 使用标准端口号 1521 --> 另一个监控程序是否配置?
2. 配置oracle客户端
台如 Instant Client for Microsoft Windows(32bit) ,下载以下三份文件:
instantclient-basic-nt-11.2.0.3.0.zip
instantclient-jdbc-nt-11.2.0.3.0.zip
instantclient-sqlplus-nt-11.2.0.3.0.zip
(2) 将下载的包解压,如解压D:instantclient_11_2下
(3) 从服务器上复制%ORACLE_HOME%
etworkadminnsnames.ora也放到D:instantclient_11_2中。其中%ORACLE_HOME%oracle安装根目录,如
D:oracle11gproduct11.1.0db_1
(4) 环境变量在客户端配置:PATH中增加;D:instantclient_11_2;新建SQLPATH,LOCAL,TNS_ADMIN,LD_LIBRARY_PATH四个环境变量名,变量值
均为D:instantclient_11_2;
(5) 测试连接
运行cmd
c:>sqlplus /nolog
如果显示Connected则连接成功
3. 将发布好的PB程序放在客户端。其中pb程序中的连接信息不需要指定服务器ip以及1521的端口,因为pb运行客户端程序时,会自动调用oracle客户端,从tnsnames.ora获得服务器机器名称和服务器机器名称oracle端口号。