Database 版 (精华区)
发信人: wodeji (西西), 信区: Database
标 题: 用PB创建Internet应用(2)
发信站: 紫 丁 香 (Thu Jul 23 20:00:26 1998), 站内信件
用PowerBuidler 5.0创建Internet应用(下)
窗口Plug-in
PowerBuilder窗口的Plug-in功能是一个将客户/服务器应用扩展
到Web上的技术。窗口的Plug-in功能允许在支持Plug-in的浏览器(如
:Netscape Navigator、MicrosoftsInterne t Explorer 3.0)上运行
PowerBuilder应用。这种Plug-in功能允许打开一个包含所有Power B
uilder标准控件的子窗口,例如tab控件、treeh和list view以及OLE
对象。也可以使用数据窗口技术,通过PowerBuilder的直接接口和ODB
C接口访问各种数据源。另外,PowerBuilder窗口Plug-in应用可具有
和分布式PowerBuilder应用的接口,这些应用可以运行在其它平台上,
如UNIX或Windows NT。
PowerBuilder窗口包含在PowerBuilder动态库(pbd)中,放在Web
服务器上。例如:要装入某PowerBuilder窗口,在HTML页上嵌入如下标
记:
〈embed src=windows_plugin.pbd width=370 height=320 wind
ow=w_product〉
这里,windows_plugin.pbd是PowerBuilder库的名称,w_product
是由浏览器打开的子窗口的名称。width和height定义了在浏览器中
窗口的尺寸。可以同样用这个嵌入标记来指定其它需要的对象的Powe
rBuilder库,并且可以用commandparm属性向窗口传递一个字符串参数
。最终用户的PC机上必须安装有PowerBuilder运行时所需的动态链接
库,以便在WWW浏览器中运行窗口。
窗口Plug-in功能的优点表现在以下几个方面:
·PowerBuilder窗口可以运行在WWW浏览器中,避免了编写大量的
HTML和CGI程序;
·只做很小的修改就可以让现有的应用具有运行在Web上的能力;
·PowerBuilder支持的高级用户界面功能克服了HTML的不足;
·可以使用数据窗口的读/写 /更新和删除功能。
使用Web.PB进行基于服务器的开发
Web.Pb是一种新的技术,可以让PowerBuilder建立基于服务器的I
nternet应用,允许WWW 浏览器访问分布式PowerBuilder应用的服务。
这些分布式的应用可以使用PowerBuilder所有的功能,例如数据窗口
、PowerScript、面向对象等,来建立基于服务器的应用。并且,Power
Builder服务器可以动态生成HTML页"飞到"或将HTML发送到Web浏览
器。这允许用户支持真正的"瘦客户机"体系结构,也就是在客户机上
只需要一个WWW浏览器。
Web.PB2体系结构如下:
图1
如上图所示,Web.PB的体系结构非常简单,并且建立在分布式Powe
rBuilder的基础上。W eb.PB实际上代替了传统的PowerBuilder客户
端应用的位置,允许用户通过WWW浏览器访问分布式的PB应用。在浏览
器中,用户可以访问在分布式PowerBuilder应用中的任何不可视对象
的属性和方法。用户还可以向方法传递参数。Web服务器与Web.PB通
讯将这些信息发送给分布式PowerBuilder应用,应用会执行方法并且
将结果以动态HTML的形式返回给浏览器。
例如,下面的代码放在一个分布式PowerBuilder应用中的"of_get
_data"函数中。这个函数在SQL Anywhere数据库中搜索姓名的第一个
字母与用户输入的字母相同的雇员,用户输入的字母放在search_lett
er参数中:
//定义变量
String ls_html
String ls_search_arg
long ll_rows_retrieved
ls_search_arg=search_letter+%
//创建数据存储(非可视化数据窗口)并与一个数据窗口相关联
ds_names=create datastore
ds_names.dataobjecet="d_names"
ds_names.settransobject(sqlca)
//检索行
ll_rows_retrieved=ds_names.retrieve(ls_scarch_arg)
//用htmltable属性以HTML表格形式存储结果
if ll_rows_retrieved>0 then
ls_html=ds_names.object.DataWindow.data.htmltable
else
ls_html=‘No employees found for this search'
end if
//返顺包含HTML表格的字符串。
return ls_html
建立了函数后,在HTML页中用下列语法调用它:
〈FORM METHOD="GET"ACTION="/cgi-shl/pbcgi050.exe/of_get_
data"〉
请键入搜索字母〈INPUT NAME="search_letter"〉
〈INPUT TYPE="SUBMIT" VALUE="search"〉
</FORM>
Action语句指出使用Web.PB的接口,在这个例子中使用pbcgi050.
exe。PowerBuilder还支持Microsoft(ISAPI)和Netscape(NSAPI)Web
服务器。被调用函数"of_get_data"参数名称是"search_letter"。一
旦这个需求被提交,分布式PowerBuilder获取数据,将它格式化为HT M
L表格并且将表格返回给浏览器:
Web.PB的优点表现在以下几个方面:
·用户可以访问动态的、数据驱动的Web节点;
·创建与服务器无关的应用,可以使用Microsoft、Netscape或任
何CGI兼容的WWW服务器;
·客户端的PC机只需要WWW浏览器;
·使用数据窗口技术在WWW节点上加入数据库连接能力;
·只在服务器上修改,简化应用的维护和支持。
支持的平台
下表是PowerBuilder 5.0 Internet特性支持的平台。表1
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: cad4.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.713毫秒