荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: 使用PowerBuilder同时访问多个数据库
发信站: BBS 荔园晨风站 (Tue Jan 26 22:57:31 1999), 转信


PowerBuilder 4.0是一套强大的数据库应用系统开发工具,它具有完
整的客户/服务器体系结构、面向对象的应用程序开发方法以及可视
化的开发环境,因而成为近几年流行的数据库前端开发工具。
    随着网络的延伸和信息系统的不断开发,系统集成面临着如何将
分布在不同服务器上的数据库系统集成到一起的问题。如下图所示:
图1
    某个客户应用可能需要在同一窗口同时访问两个服务器上的两个
不同种数据库,PowerB uilder为这种需求提供了令人满意的解决方案

    方案一:
    通过Transaction Object同时打开多个事务,再通过多个事务存
取建立在不同数据库上的DataWindows。
    方案二:
    通过数据管道(DataPipeLine)将其它数据库上基表中的数据传送
到主数据库上,对数据管道还可加上过滤条件,以便只传送需要的数据

    具体实现方案
    本文在一个窗口上的两个按钮具体显示方案一和方案二,这个窗
口如右图所示。在这个窗口中的三个事件脚本(Scripts)如下:
    (1)打开窗口事件脚本(Open for W_LC)
    Transaction lc_oracle,lc_ingres
    ∥初始化oracle数据库事务
    lc_oracle=CREATE transaction
    lc_oracle.DBMS      ="OR7  ORACLE v7.x"
    lc_oracle.Database  ="ora7"
    lc_oracle.logId     ="Ljb"
    lc_oracle.logPassword   ="Ljbljb"
    lc_oracle.ServerName    ="@t:132.147.111.8"
    ∥初始化ingres数据库事务
    lc_ingres=CREATE transaction
    lc_ingres.DBMS      ="ODBC"
    lc_ingres.Database  ="xxzx2"
    lc_ingres.userid    ="nt"
    lc_ingres.dbpass    ="ingres"
    lc_ingres.dbparm    ="ConnectString='DSN=kfml;&
    SRVR=nt;DB=xxzx2;OPTS=;UID=ingres'"
    (2)同时访问两个数据库的脚本(Clicked for CB_MutiDBMS)
    ∥访问 oracle数据库
图2
    connect using lc_oracle;
    dw_oracle.SetTrans(lc_oracle)
    dw_oracle.retrieve()
    ∥访问ingres数据库
    connect using lc_ingres;
    dw_ingres.SetTrans(lc_ingres)
    dw_ingres.retrieve()
    (3)数据管道的脚本(Clicked for CB_PipeLine)
    /*说明一个支持数据管道的对象,lc_object是在
    User Object Painter中定义的PipeLine对象*/
    lc_object lcl_object
    ∥启动数据管道
    integer start_result
    connect using lc_oracle;
    connect using lc_ingres;
    lcl_object=create lc_object
    /*lc_pipeline是在PipeLine Painter中定义的数据管道,以便将
ingres基表中的数据传送到oracle数据库基表中*/
    lcl_object.dataobject="lc_pipeline"
    start_result=lcl_object.start &(lc_oracle,lc_ingres,dw_o
racle)
    If start_result=-3
    messagebox("数据管道错","此基表已存在");
    return
    end if
    disconnect using lc_oracle;
    disconnect using lc_ingres;

    小结
    PowerBuilder不仅为应用系统的快速开发提供了强有力的支持工
具,而且为30多种数据库提供了直接连接或ODBC连接,再加上Transact
ion Object和Data PipeLine同时存取多个数据库的功能,为大中型企
业在信息系统建设的中后期完成系统的互连提供了简捷有效的方法。

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店