文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» PowerBuilder » 运用PowerBuilder同时访问多个数据库       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 运用PowerBuilder同时访问多个数据库  ( 查看:160  回复:0 )   
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3113
精华 1
无忧币 5989
积分 4101
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-10-11 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-6-26 09:04   标题:运用PowerBuilder同时访问多个数据库
上一帖 |
运用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同时存取多个数据库的功能,为大中型企业在信息系统建设的中后期完成系统的互连提供了简捷有效的方法。



用户必读,51CTO积分系统调整通知
2008-6-26 09:041楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号