如果你已经是个PowerBuilder高手,那么下面的东西对你来说毫无价值,你大可不必再看下去,如果你刚刚步入PowerBuilder的殿堂,那么下面的东西对你来说可能有点价值,你应该看一看。
作为一个优秀的客户端开发工具,PowerBuilder必然需要与大型的数据库相连接,尽管许多资料上都介绍了如何通过ODBC或者PowerBuilder自带的DB Profile或者专用接口连接上数据库,但仍然有许多使用者按此方法却无法连接上数据库,这方面的原因可能是PowerBuilder本身的原因,比如在安装PowerBuilder时的选项、ODBC的版本之类;也可能是在安装客户端的Oracle、Sybase、Informix、SQL Server等软件上的问题,下面就从最根本的ODBC配置开始,教你一步步如何连接上数据库。
ODBC数据源的配置
进入控制面板,打开ODBC数据源(32位),如图1所示,点击“ADD”按钮,进入ODBC数据源的配置面板,如图2所示:
选择“Oracle ODBC Driver”一项,注意当前版本号为“8.00.0400”,如果你的操作系统中安装的是Oracle7,则相应的版本号会不同。提醒一点:在Windows98操作系统上是无法安装Oracle8.0.4的(只能安装Oracle7.2.3),Oracle8.0.5则没有试过。因而会有一些使用者在Windows98系统上无法正常配置ODBC数据源,因为Windows98本身自带的ODBC数据源已经比Oracle7数据源版本要高,无论你怎样配置ODBC,系统总会提示你要安装一个更高版本的Oracle,自然你就无法配置ODBC了,有一个解决方法就是用PB7第二张光盘上的ODBC安装程序覆盖系统中的ODBC,或者把你的操作系统改为Windows95/97算了。
然后进入“Oracle8 ODBC Driver Setup”设置,在“Data Source Name”一项中随便输入一个名字,在“Data Source Service Name”一栏中输入Oracle连接数据库的字符串名,这可以在你安装的Oracle目录中的Tnsnames.ora文件中查看到(Oracle7安装路径为“ORAWIN95\NETWORK\ ADMIN”;Oracle8安装路径为“orawin95\NET80\ADMIN”),或者你通过“SQL Net Easy Configuration”新添加一个数据库连接配置,将配置中的字符串填入即可,其他的就不必再填入,避免出现画蛇添足之错,反而连接不上数据库了。
DB Profile数据源的配置
进入PB,打开DB Profile,如图4所示,选择ODBC一项,点击“NEW”,进入PB数据源的配置,如图5所示。当然如果你之前没有进行ODBC的配置,你也可以在这里点击“Config ODBC”进入之前你看到的ODBC配置界面。
在“Profile Name”中自定义一个名字,然后从“Data Source”的下拉菜单中选择你在ODBC中已经配置好的数据源,输入登录数据库所需要的用户名与密码,当然你认为没有这个必要性的话可以不在这里输入(主要是不要轻易让人知道你数据库的口令,不然问题就大了),到这一步为止,PB已经做完了所有数据库连接的配置,剩下的就是连接上数据库了。
PB FOR Oracle专用接口的配置
同样是进入PB,点击DB Profile选项(这是对Oracle7版本而言,如果是Oracle8,相应的选项就是Oracle8.0.4),看到上面的“073 Oracle 7.3”选项没有,点击一下,再按“NEW”进入图7的界面,“Profile Name”一栏随意填,“Server”一栏填写时要注意,Oracle7版本一定要在数据连接字符串前加上@,否则不能连接上PB数据库,Oracle8版本则不必加上@,其他的设置就可以不用了。
以上三种PB连接数据库的方法其实十分简单,但是初学者却又会经常出错,在这里只是想作为一种抛砖引玉之用,希望广大初学者通过本文对PB数据源配置能够有一定的了解。下面再对Oracle连接数据库的配置文件Tnsnames.ora简单说明一下,“Tnsnames.ora”文件其实是通过“SQL Net Easy Configuration”初始化配置后的参数文件,如果你不想通过“SQL Net Easy Configuration”进行配置,你只需要把你先前已有的“Tnsnames.ora”文件放入Oracle的ADMIN目录中,覆盖现有的文件就可以了,当然你也可以再自己添加数据库连接字符串。通常,一个“Tnsnames.ora”文件内容如下:
??????
kf.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 136.12.145.5)
(Port = 1521)
)
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 136.12.145.5)
(Port = 1526)
)
)
(CONNECT_DATA = (SID = sid3)
)
)
??????
其中最要的是第一项和最后一项(这里是以TCP/IP网络连接,大多数用户都是以此连接),HOST一栏是主机地址,“CONNECT_DATA = (SID = sid3)”中的SID3是连接主机数据库的字符串,你要修改这几项就可以了。另外谈谈如何让英文版的Oracle7显示中文,其实很简单,只要将注册表“HKEY_LOCAL_MACHINE\ Software\ORACLE\NLS_LANG”中的值改为如下值就可以了“ SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280”。