[返回]
计算机世界1997年
4月18日

利用Powerbuilder动态操作多种数据源

湖北 吴志芳

  一、引言

  近几年随着计算机在各个行业的逐渐推广和普及,数据库应用也有了很大的发展。各种数据库管理系统DBMS也被纷纷引入国内,如:Informix、Sybase、Oracle、IBMDB2、Ingres等。在方便用户进行选择的同时,也带来了一些新的问题。例如一个大的水电发电厂,由于历史和行业渐进性发展等原因,它的各部门分别采用Foxpro,Sybase,Oralce开发了一些应用,而现在,其计算机管理要由部门级上升到企业级,那么为了减少开发费用,保护在已有数据库系统上的投资,就必须面对如何处理多个数据源的问题。在这方面,基于客户端的开发了工具Powerbuilder当为首要的选择。

  

  二、技术关键

  Powerbuilder是美国Powersoft公司九十年代的产品。它是一种完全按照客户/服务器体系结构研制的开发系统。它除了能与内置的Watcom数据库连接外,还可以连接Server端众多的大型数据库,如:Informix、Sybase、Oracle、IBMDB2等。Powerbuilder功能强大,它提供数据窗口这个智能对象,利用该对象可以查询和更新数据库而无需有SQL编程。数据窗口操纵的数据源可以是表,视图,存储过程以及外部数据等几种类型。在同一个窗口上,几个不同的数据窗口还可以同时对不同的数据库系统进行操作。另外,Powerbuilder还向用户提供了功能强大的Powerscript语言,该语言类似于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″

  //设置服务器名

  CONNECT;

  SQLServerTransΚCREATETRANSACTION

  //创建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动态操作多个数据源的技术,可以减少系统的重复开发,达到既对原系统进行有益的继承,高效开发,又减少投资的目的。