分享
 
 
 

轻松利用PowerBuilder和EAServer搭建三层架构程序

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

轻松利用PowerBuilder和EAServer搭建三层架构程序

作者:坏人张,发表时间:2004-9-19

PowerBuilder是在c/s应用中被普遍使用的开发工具,是公认的高效率的图形化4GL工具。EAServer是集动态页面发布和事务处理于一个身的企业级应用服务器。这二者的结合可以构成多层应用的开发和提交环境,开发人员可以不离开这个集成的开发环境进行应用的开发、调试、提交和运行。

EAServer中包括动态页面服务器PowerDynamo和事务处理服务器Jaguar CTS,这两者的结合使EAServer成为发布动态网页和处理电子商务的应用服务器,支持多种组件类型,如COM、CORBA、JavaBean/EJB和PowerPuilder。它的一个更加显著的特点是支持XML和J2EE。

PowerBuilder和EAServer的结合能使企业在以下方面获得成功:

● 从客户/服务器升级到分布应用。

● 开发Web和Internet的电子商务应用。

● 支持建造企业门户的基础。

在本例中,作者介绍了一个如何利用PowerBuilder和EAServer来建立三层架构应用程序的范例,涉及到知识有:

1.如何在EAServer中配置数据库的连接

2.如何在PowerBuilder中创建EAServer组件(EAServer Component)

3.如何在PowerBuilder中生成EAServer代理对象(EAServer Proxy)

4.如何在PowerBuilder中实现三层结构应用程序的连接

至于EAServer的安装与配置等话题则不在此文讨论范围之内,详情可以到http://sybooks.sybase.com/站点查找相关的文档。

在正式介绍本例以前,请确认在你的机器上已经成功安装了EAServer和PowerBuilder,以及任意一种数据库环境。

本例使用的开发环境为:

操作系统

Windows Server 2003 企业版

数据库

MS SQL Server 2000 企业版

开发环境

EAServer5.1开发版、PowerBuilder9.0企业版

其中EAServer5.1开发版可以从http://www.sybase.com上下载到。

实现过程:

1. 在EAServer中配置数据库的连接

要在组件中实现对数据库的访问,在组件内部仍然与平时编写C/S应用一样,使用同样的连接代码,即指定SQLCA的各个属性的值,然后调用Connect Using SQLCA即可,但是与C/S应用不同的时,连接操作是在应用服务器上执行的,即EAServer所在的服务器,所以有两个需要注意的地方:

1) 应用服务器上已经配置了与数据源的连接(比如通过ODBC),并确保组件内连接时使用的SQLCA属性值为应用服务器上相关参数,而非本地连接,当然如果应用服务器和数据库服务器为同一台机器时则连接参数可相同。

2) 在EAServer中已经配置了Connection Cache,并且确保可以Ping成功。

以下将会为你详细介绍如何在EAServer中配置Connection Cache的步骤:

启动EAServer Manager并连接到EAServer,在左边的树节点中选择Connection Caches节点,如下图所示:

这时在右边详细信息栏中显示的是已经配置的Connection Cache列表,你需要建立一个新的连接缓存,通过在右键弹出菜单中的New Connection Cache菜单项,会弹出配置界面,由于每个版本的EAServer中的配置界面不尽相同,所以这里列出了配置项的值,读者可以选择进行填写

配置项名称

配置项值

说明

Connection Cache Name

pb_eas_dbconnection

可自定义的名称,任意填写

Database Type

SQL_Server

数据库类型,本例为SQL_Server

Server Name

pmdb_sql

为ODBC数据源的名称,而不是数据库服务器的机器名

XA Server Name(optional)

选填项

User Name

sa

Password

sa的密码

Database Driver Type

ODBC

本例通过ODBC连接,必须

DLL Or Class Name

ODBC32.DLL

连接驱动,必须

Maximum Connection Pool Size

75

为75

Minimum Connection Pool Size

0

默认

Pooled Connection Idle Timeout

300

默认

Pooled Connection Refresh Rate

600

默认

如果使用EAServer5.1以下,会有一个Refresh按钮,记得改写这些配置后,按此按钮以更新配置。

完整了以上的配置后,回到了EAServer Manager主界面中,在右边详细信息栏中会添加你刚才添加的数据联接缓存,通过右键菜单中的Ping菜单试试看是否可以Ping的通,如果通了的话则表明已经成功建立了数据连接缓存,不通的话,请查看以上步骤是否有遗漏的地方或者是否已经配置了ODBC数据源。

2. 在PowerBuilder中创建EAServer组件(EAServer Component)

成功完整了步骤1之后,接下来可以进行PowerBuilder编程了,在本例中PowerBuilder中的对象结构如下图:

在PowerBuilder中创建EAServer组件的步骤:

1) 建立不可视类n_cst_eas

函数:long of_retrieve( )

代码:

long ll_rows

datastore lds_data

// Profile pmdb

SQLCA.DBMS = "ODBC"

SQLCA.AutoCommit = False

SQLCA.DBParm = "ConnectString='DSN=pmdb_sql;UID=sa;PWD=mis'"

connect using sqlca;

if sqlca.sqlcode <> 0 then return sqlca.sqlcode

lds_data = create datastore

lds_data.dataobject = 'ds_data'

lds_data.settransobject( sqlca )

ll_rows = lds_data.retrieve()

disconnect using sqlca;

return ll_rows

2) 建立EAServer组件

建立一个新的EAServer Component,各参数在以下几幅图示中显示出来:

按照以上步骤执行完毕后,最后执行Deploy Project以将组件提交到EAServer,其中需要说明的是Package Name可以自定义的新的Package(手工输入),也可是选择Package列表中的已有Package(在新建向导中可以选择)。

成功提交以后,可以在EAServer Manager发现刚刚提交的Package已经在Installed Packages节点中显示出来了。

3. 在PowerBuilder中生成EAServer代理对象(EAServer Proxy)

建立一个新的EAServer Proxy,各参数在以下几幅图示中显示出来:

按照以上步骤执行完毕后,最后执行Deploy Project以在PB中生成EAServer代理对象。

4. 在PowerBuilder中实现三层结构应用程序的连接

以上已经完成了EAServer组件和EAServer代理对象的生成,接下来要进行的就是在PowerBuilder应用程序中声明代理对象,进而可以在应用程序中执行EAServer组件的方法了。

具体方法:

在PowerBuilder建立一个应用,执行下列代码:

long ll_rows

connection lc_connect //连接对象

n_cst_eas ln_eas_proxy //EAServer代理对象

lc_connect = create connection //创建连接对象

lc_connect.application = 'PB_EAS_DemoPackage' //Package Name,可以不写,具体使//用方法可以查阅PB帮助文档中关//于connection对象的帮助

lc_connect.driver = 'jaguar' //连接对象对象的驱动,对于EAServer,值为jaguar

lc_connect.userid = 'jagadmin' //登录帐号,这里为管理员

lc_connect.password = '你的密码'

lc_connect.location = 'iiop://server1:9000' //对应服务器server1的9000端口

lc_connect.connecttoserver( )

lc_connect.createinstance( ln_eas_proxy, 'n_cst_eas' ) //创建EAServer代理对象的实例

ll_rows = ln_eas_proxy.of_retrieve( ) //调用EAServer组件的方法(函数)

messagebox("Total Rows is:", string( ll_rows ) )

destroy ln_eas_proxy

destroy lc_connect

到这里,已经完成了从配置到编码实现利用PowerBuilder和EAServer搭建一个典型的三层架构程序的过程,希望可以对你入门有所帮助,欢迎技术探讨,联系我

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有