利用Powerbuilder动态操作多种数据源
湖北 吴志芳
一、引言
近几年随着计算机在各个行业的逐渐推广和普及,数据库应用也有了很大的发展。各种数据库管理系统DBMS也被纷纷引入国内,如:Informix、Sybase、Oracle、IBMDB2、Ingres等。在方便用户进行选择的同时,也带来了一些新的问题。例如一个大的水电发电厂,由于历史和行业渐进性发展等原因,它的各部门分别采用Foxpro,Sybase,Oralce开发了一些应用,而现在,其计算机管理要由部门级上升到企业级,那么为了减少开发费用,保护在已有数据库系统上的投资,就必须面对如何处理多个数据源的问题。在这方面,基于客户端的开发了工具Powerbuilder当为首要的选择。
二、技术关键
Powerbuilder是美国Powersoft公司九十年代的产品。它是一种完全按照客户/服务器体系结构研制的开发系统。它除了能与内置的Watcom数据库连接外,还可以连接Server端众多的大型数据库,如:Informix、Sybase、Oracle、IBMDB2等。Powerbuilder功能强大,它提供数据窗口这个智能对象,利用该对象可以查询和更新数据库而无需有SQL编程。数据窗口操纵的数据源可以是表,视图,存储过程以及外部数据等几种类型。在同一个窗口上,几个不同的数据窗口还可以同时对不同的数据库系统进行操作。另外,Powerbuilder还向用户提供了功能强大的Powerscript语言,该语言类似于C语言,不但提供了400多个内部函数,而且定义了调用WindowsAPI函数的接口。通过数据窗口和Powerscript语言的有机结合,利用它们为每个数据库连接定义一个事物对象,并用不同的事物对象分别操作不同的数据库,从而实现动态操作多个数据源的工作。
下面的程序介绍动态地往Oracle7和SybaseSQLServer库中分别插入一条记录的方法:
TransactionSQLServerTrans
//说明SQLServer的事物对象
SQLCA.DBMSΚ″OR7″
//设置数据库为Oracle7
SQLCA.LogidΚ″WU″
//设置用户名为“WU”
SQLCA.LogpassΚ″AW″
//设置口令为“AW”
SQLCA.servernameΚ″T:scosysv:orac″
//设置服务器名
CONNECT;
SQLServerTransΚCREATETRANSACTION
//创建SQLServer事物对象
SQLServerTrans.DBMSΚ″SYBASE″
//设置数据库为Sybase
SQLServerTrans.LogidΚ″LX″
//设置用户名为“LX”
SQLServerTrans.LogpassΚ
//设置口令为空
SQLServerTrans.servernameΚ″SYBASE″
//设备服务器名
CONNECTUSINGSQLServerTrans;
//连接到数据库Sybase
Insertintomaster(master-code)values(′A000
01′)
UsingSQLServeTrans:
//插入到Sybase一条记录
Insertintoemploy(ename)values(′LX′);
//插入到Oracle一条记录
DISCONNECT;
//断开到Oracle的连接
DISCONNECTUSINGSQLServerTrans;
//断开到Sybase的连接
DESTROYSQLServerTrans;
//消除事物对象SQLServerTrans
对本程序稍加修改,即可完成对其他数据源的操作。
三、结束语
采用Powerbuilder动态操作多个数据源的技术,可以减少系统的重复开发,达到既对原系统进行有益的继承,高效开发,又减少投资的目的。