用Powerbuilder开发WEB数据库
流星雨
一、引言
我们知道,现在随着Internet应用的不断深化,人们对Web服务器所查询的信息就不仅仅限于以文件方式存放于服务器端的静态超文本文件。有时需要借助关系新数据库来存放变化的数据,并在Web服务器于数据库服务器之间以CGI等方法建立两者的连接,使Web服务器能够实现对数据库的动态的及时的查询,并将最新的数据(结果)返回给浏览器。
于是在Internet应用中就出现了如图1所示的这样一种结构。
图1 客户浏览器—Web服务器—数据库服务器三级结构
当然这一结构的实现,用ASP等开发网络数据库的软件也能够实现,并且正在成为日益流行的趋势,但是对于已经拥有大量用户的PB来说,其对Internet的支持就可以让PB用户迅速转移到Web的开发上来而不需要再重新学习一门语言。
另外,我们如果稍稍留心的话就不难发现,现在用PB开发出来的所谓的MIS系统千篇一律几乎都是一个模式:用户先登录,进入系统后出现一个MDI窗口,带有数项菜单,菜单下面又有若干菜单,通过菜单打开一个个窗口……当然并不是说这种传统的方式有什么缺点,只是它和当今正日益流行的网页的形式比较起来,还是逊色不少,网页的友好形式更受广大用户的欢迎。而PB的Web方式正是迎合了当今Internet时代发展的潮流——可以用网页的形式再现PB的传统强大功能。
而且,随着越来越多的企事业单位上网,很多单位不仅仅要有自己的一套MIS系统,而且还迫切需要开发自己的网络数据库系统,来向外界更好的宣传自己。这时候一般的选择往往是这两种系统各自独立的开发一套,不可避免地造成了一定程度的浪费。并且这两种系统的开发商是同一家还好,若是两家开发商,那么在不同的时候还要进行不断的协商,这不能不说又是一种浪费。如果能有一种方法可以把两种系统最大限度的把两种系统结合起来,就能够节约各种财力、人力和物力,还会大大提高办公效率。
二、PB6.0/6.5的Internet Developer Toolkit(IDT)
经典的开发工具PB6.0/6.5,对Internet支持可以说是它的一个主要特性,可以说这是在IDT基础上的一个全新的飞跃。通过将IDT(Internet Developer Toolkit)工具集成到PB的开发环境中,通过这些工具,开发人员可以将现有的一些应用移植到Internet中,也可以开发新的面向Internet的应用。
在图1所示的的结构下,PB提供了Internet应用的两种访问方式。这两种访问方式是:
。基于Plugin(插入件)的Client/Server方式
。基于Web.PB的Browser/Server方式
对应于这两种方式,主要是在IDT上选择的不同。
采用PB的IDT开发应用的方法和PB的一般应用的开发方法是类似的,通过这些工具,可以将现有的一些应用移植到Internet中,也可以开发新的面向Internet的应用。
在PB6.0/6.5中,提供了Web.PB、DataWindow Plug-in、Window Plug-in和Window Active等一系列面向Internet的工具,每个工具所实现的功能、所依赖的平台都不尽相同。PB的IDT主要有三种部件:
1.DataWindow Plugin
使用该Plugin可以在IE或者Netscape等浏览器中直接查看用PowerBuilder的Datawindow生成的报表--PSR格式的文件。当然不能直接修改了,也不是动态生成的。而是阅读已经生成好并存下来的文件。
2. Window Plugin
这个Plugin可就不是仅仅显示静态数据了。它在浏览器中中运行PB生成的Child Window,而这个Child Window是包含在PB的动态连接库(PBD)中传送过来的。用起来就象独立的PB程序一样,可以有数据窗口、OLE、OCX等各种各样的控制,可以远程操作数据库。可以极大的发挥PB的功能。
3. WEB.PB
Web.PB是用来开发基于Web应用的基本部件,该部件本身就是Web上的一个网关应用程序。该工具提供从 Web服务器到PowerBuilder应用服务器的访问,允许用户在 Internet以及Intranet下,通过Web对数据库进行近于完全的操纵。同时,通过Web.PB,动态创建table
ELSE
ls_html = '此次找不到新书!'
END IF
RETURN ls_html
这是非常关键的一段代码,其实就是调用了数据窗口的htmltable属性而已,要知道这种思想可以说是贯穿了整个Web.PB应用的全过程。
启动浏览器就可以检索到新书了。当然还有一个前提是:服务器确定是在监听,即刚建立的pb_inet应用必须在运行中。
最后还要在服务器端配置几个INI文件:Hosts文件、services文件和PBWEB.INI文件,当然这项工作实际上应该在整个工作之前所做的。
四、对三种开发方式的总结
1.关于Window Plug-in的几点体会
1)Window Plug-in最适用于Intranet网,前面提到过原因,因为需要浏览器的支持,而且需要在浏览器端安装程序文件。另外一个原因就是,Window Plug-in主要的执行环境还是浏览器本身所在的本地机环境,只有在内部网的情况下,才能够对应用执行的环境进行比较好的控制,避免出错。
2)Window Plug-in适用于在浏览器端有比较复杂的用户接口的情况,可避免编写大量的HTML和CGI程序。开发Internet经常遇到的一个难题就是在客户端没有足够的组件。现在,有了Window Plug-in,只要愿意,就能把独立的PB应用程序转移到浏览器中来执行。
3)并且,Window Plug-in移植和修改现有的应用程序到Web上也可以说是不费什么力气,还可以充分享受数据窗口的强大功能。
4)在Intranet环境下,安全等因素就不是那么重要了,可允许应用程序访问客户机的磁盘,使用户能够将本地的资源和服务器的资源结合起来应用。
5)笔者看来,这三种IDT中,Window Plug-in方式是最值得用的。
2. 关于DataWindow Plug-in的几点体会
1)DataWindow Plug-in可以在Web上发布复杂的报表,加快向Web用户的发布。
2)它克服了HTML的限制,提供复杂的报表,包括列表形式、交叉表形式和图形方式等。
3)它没有安全限制,因为PSR文件是制度的,而这个报表并不在本地
运行。PSR报表在浏览器中除了显示之外,只能够运行保存数据和打印两种功能,因此是十分安全的。
4)DataWindow Plug-in时静态显示报表的一种方法,无法直接修改这种方法显示的数据和报表格式,但可以在一个中央位置更新报表。
5)PSR格式的报表能够包含多种显示风格的数据窗口,但在DataWindow Plug-in中,不支持Rich Text格式的报表。
3.Web.PB构建Web应用有如下优点:
a. 支持CGI、ISAPI、NSAPI、MSAPI等多种网关程序接口。
b. 支持PowerBuilder中数据窗口的引用。
c. 易于将以前编写的PowerBuilder应用移植到Web环境下。
d. 易于创建嵌入PowerBuilder应用程序的HTML文件,应用服务器在运行环境下,将根据用户需求, 动态生成HTML语法,发布完全动态的信息。
e. 支持数据库连接。PowerBuilder所能够连接到的数据库都可以被浏览器用户访问到,使得 Web服务与数据库服务通过Powerbuilder 6.0完整地结合起来。
另外,谈一点对Web.PB的不足之处。虽然说Sybase公司极力地让PB支持Web方式并且采取了很多方案其中一种就是其引以为豪的Web.PB,的确,Web.PB在网络数据库方面确实有不小的成绩,可以采用集中式数据库管理。但它在开发网络数据库方面也绝不会成为流行的趋势,它开发初衷就是主要面对广大PB的老用户的(老用户更容易上手),而且它在页面的开发上过于单调,且不说动态性不强,光是一大堆类库函数,加上每个函数还有数个参数,而且创建页面其实比手写HTML语言还要辛苦(因为它要返回一个完整的字符串到浏览器)。联想到当今的社会发展非常注重效率,很难设想从头单纯学习PB的IDT而仅仅为了编辑过于普通的网页和开发网络数据库。因此在这方面也就是说Web.PB广泛推广的价值不大,但是对于已经掌握了PB的开发用户来说,如果不想学习新的语言或工具,用Web.PB开发也是一个很好的选择。
注:虽然当今PB已经发展到8.0版本,但是仍然有很多的开发者依旧用着他们认为是最为经典的6.0/6.5版本。本文基本上是在6.5版本上运行的,笔者认为却一点都不过时,因为友好的web风格的窗口肯定是大势所趋。
- 最新文章
- 用Powerbuilder进行分布式应用开发三级体系结构[01-04]
- 用PB开发多媒体数据库管理系统[01-04]
- 用IS5.0将数据库的DSN自动添加ODBC中[01-04]
- 如何发布独立的POWERBUILDER应用[01-04]
- 浅谈PB中动态DataWindow的技术应用[01-04]
- 利用POWERBUILDER开发数据库的WEB查询[01-04]
- 相关文章
- 用PB开发多媒体数据库管理系统[01-04]
- 用IS5.0将数据库的DSN自动添加ODBC中[01-04]
- 利用POWERBUILDER开发数据库的WEB查询[01-04]
- pb中压缩整理access数据库文件(mdb)[01-04]
- PB修改数据库表结构的技巧[01-04]
- C++ Builder下数据库报表Master/Detail..[01-03]
