** 轻松利用 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所在的服务器,所以有两个需要注意的地方:
应用服务器上已经配置了与数据源的连接(比如通过ODBC),并确保组件内连接时使用的SQLCA属性值为应用服务器上相关参数,而非本地连接,当然如果应用服务器和数据库服务器为同一台机器时则连接参数可相同。
在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组件的步骤:
- 建立不可视类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'"
<SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FA