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毫秒