中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > PowerBuilder
使用PowerBuilder同时访问多个数据库
作者:未知 时间:2005-08-07 21:04 出处:编程爱好者网站 责编:chinaitpower
              摘要:使用PowerBuilder同时访问多个数据库
    PowerBuilder 4.0是一套强大的数据库应用系统开发工具,它具有完整的客户/服务器体系结构、面向对象的应用程序开发方法以及可视化的开发环境,因而成为近几年流行的数据库前端开发工具。  
随着网络的延伸和信息系统的不断开发,系统集成面临着如何将分布在不同服务器上的数据库系统集成到一起的问题。如下图所示:  
某个客户应用可能需要在同一窗口同时访问两个服务器上的两个不同种数据库,PowerBuilder为这种需求提供了令人满意的解决方案。  
方案一:  
通过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数据库  
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_oracle)  
If start_result=-3  
messagebox("数据管道错","此基表已存在");  
return  
end if  
disconnect using lc_oracle;  
disconnect using lc_ingres;  
小结  
PowerBuilder不仅为应用系统的快速开发提供了强有力的支持工具,而且为30多种数据库提供了直接连接或ODBC连接,再加上Transaction Object和Data PipeLine同时存取多个数据库的功能,为大中型企业在信息系统建设的中后期完成系统的互连提供了简捷有效的方法。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有