知识大全 用Powerbuilder开发WEB数据库

Posted

篇首语:世事洞明皆学问,人情练达即文章。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Powerbuilder开发WEB数据库相关的知识,希望对你有一定的参考价值。

用Powerbuilder开发WEB数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一 引言

  我们知道 现在随着Internet应用的不断深化 人们对Web服务器所查询的信息就不仅仅限于以文件方式存放于服务器端的静态超文本文件 有时需要借助关系新数据库来存放变化的数据 并在Web服务器于数据库服务器之间以CGI等方法建立两者的连接 使Web服务器能够实现对数据库的动态的及时的查询 并将最新的数据(结果)返回给浏览器   于是在Internet应用中就出现了如图 所示的这样一种结构

图 客户浏览器—Web服务器—数据库服务器三级结构

  当然这一结构的实现 用ASP等开发网络数据库的软件也能够实现 并且正在成为日益流行的趋势 但是对于已经拥有大量用户的PB来说 其对Internet的支持就可以让PB用户迅速转移到Web的开发上来而不需要再重新学习一门语言   另外 我们如果稍稍留心的话就不难发现 现在用PB开发出来的所谓的MIS系统千篇一律几乎都是一个模式 用户先登录 进入系统后出现一个MDI窗口 带有数项菜单 菜单下面又有若干菜单 通过菜单打开一个个窗口……当然并不是说这种传统的方式有什么缺点 只是它和当今正日益流行的网页的形式比较起来 还是逊色不少 网页的友好形式更受广大用户的欢迎 而PB的Web方式正是迎合了当今Internet时代发展的潮流——可以用网页的形式再现PB的传统强大功能 而且 随着越来越多的企事业单位上网 很多单位不仅仅要有自己的一套MIS系统 而且还迫切需要开发自己的网络数据库系统 来向外界更好的宣传自己 这时候一般的选择往往是这两种系统各自独立的开发一套 不可避免地造成了一定程度的浪费 并且这两种系统的开发商是同一家还好 若是两家开发商 那么在不同的时候还要进行不断的协商 这不能不说又是一种浪费 如果能有一种方法可以把两种系统最大限度的把两种系统结合起来 就能够节约各种财力 人力和物力 还会大大提高办公效率   二 PB / 的Internet Developer Toolkit(IDT)   经典的开发工具PB / 对Internet支持可以说是它的一个主要特性 可以说这是在IDT基础上的一个全新的飞跃 通过将IDT(Internet Developer Toolkit)工具集成到PB的开发环境中 通过这些工具 开发人员可以将现有的一些应用移植到Internet中 也可以开发新的面向Internet的应用   在图 所示的的结构下 PB提供了Internet应用的两种访问方式 这两种访问方式是   ·基于Plugin(插入件)的Client/Server方式   ·基于Web PB的Browser/Server方式   对应于这两种方式 主要是在IDT上选择的不同   采用PB的IDT开发应用的方法和PB的一般应用的开发方法是类似的 通过这些工具 可以将现有的一些应用移植到Internet中 也可以开发新的面向Internet的应用   在PB / 中 提供了Web PB DataWindow Plug in Window Plug in和Window Active等一系列面向Internet的工具 每个工具所实现的功能 所依赖的平台都不尽相同 PB的IDT主要有三种部件    .DataWindow Plugin   使用该Plugin可以在IE或者Netscape等浏览器中直接查看用PowerBuilder的Datawindow生成的报表 PSR格式的文件 当然不能直接修改了 也不是动态生成的 而是阅读已经生成好并存下来的文件    Window Plugin   这个Plugin可就不是仅仅显示静态数据了 它在浏览器中中运行PB生成的Child Window 而这个Child Window是包含在PB的动态连接库(PBD)中传送过来的 用起来就象独立的PB程序一样 可以有数据窗口 OLE OCX等各种各样的控制 可以远程操作数据库 可以极大的发挥PB的功能    WEB PB   Web PB是用来开发基于Web应用的基本部件 该部件本身就是Web上的一个网关应用程序 该工具提供从 Web服务器到PowerBuilder应用服务器的访问 允许用户在 Internet以及Intranet下 通过Web对数据库进行近于完全的操纵 同时 通过Web PB 动态创建HTML文文件亦成为可能 Web PB程序是Web服务器和 PowerBuilder应用服务器相连接的桥梁 它支持CGI ISAPI NSAPI MSAPI等多种网关程序接口   不管怎么样 必须要明确这样一个结论 PB的Internet应用开发是由两个部分组成的 一个是面向服务器的应用程序 主要采用的是Web PB技术 另外一个是面向客户端的技术 包括各种内插件和ActiveX技术 这是两种不同的技术路线 在实施的时候 必须加以充分的考虑 从另外一个角度可以看出 各种内插件和ActiveX技术是为了将现有的应用扩展到Internet中去 而Web PB主要是面向新应用的开发 当然这也不是绝对的 Plug in技术照样可以开发新的应用特别是Intranet的应用   三 开发策略的选择    .PB 的Internet/Intranet总体计划实施策略选择   现在好象一直存在着 瘦客户端 和 胖客户端 的争论 这里不评价这两者的优劣 但是这肯定是实施策略时要考虑到的问题 如果希望采用纯的 瘦客户端 那么两种Pug in技术和Active技术就不是最好的选择   采用 瘦客户机 策略——即Web PB方式 能够减少在客户端软件方面的投资 因为这种瘦客户机一般只需要浏览器这种核心部件 另外 瘦客户机对计算机的性能要求也比较低 不需要客户机承担多少运算的负载 大量的运算任务都由服务器来承担   如果采用 中间 策略 那么 可以在客户端加载Plug in和ActiveX(现在的浏览器一般都支持这种技术) 并且支持MINE格式的内容 这样一来 客户即便能够承担一些表现逻辑方面的任务 但是 业务逻辑的大部分运算任务仍然在服务器端完成 这种其实就是Window Plug in方式 它尤其适用于Intranet网中   最后一种是传统的C/S策略 其实就是 胖客户 方式 由于大部分程序都驻留在客户端 它对客户机的要求也很高 这种方式在现在的Intranet中估计迟早要被淘汰 在具体的IDT工具的选择策略上 主要有三个方面的选择    )如果是需要实现客户端访问数据库并在客户机上进行业务处理 最好使用Window Plug in 它不仅可以最大限度地发挥PB的强大功能 而且对用户非常友好 告别老套的菜单走向了丰富多彩的网页形式    )如果客户端需要预先编制好的报表 应采用DataWindow Plug in为上佳 它能够在浏览器内显示已经生成并存储在Web服务器上的PSR报表 因为这个报表是预先生成的 所以不需要访问数据库 用户可以在浏览器内查看 打印和保存报表 PSR报表的格式多样 能够给WWW浏览增添不少风采    )如果需要使用集中控制的数据库和业务逻辑程序 那么最好使用Web PB    .开发系统具体策略的考虑及分布式的介绍   由于要建立的Web方式的图书馆系统主要是基于Intranet的 结合上面所说的几种考虑 因此大部分应用就采用了Window Plug in的方式 这不仅能体现PB一向的强大功能 而且能充分让你去发挥其功能 把MIS系统管理和丰富多彩的网页结合起来了   Web服务器用的是微软的PWS(Personal Web Server) Web PB用的是PBCGI EXE(表示是CGI标准) Sybase数据库 NT平台   开发过程中大量使用了数据库连接 单 多条件数据查询以及各种控件的 Visible属性 尤其是在Tab控件中用到了selectionchanged事件的newindex属性(以便每重新点击一个Tabpage可以重新操作而不受以前操作的影响) 大大增强了表现效果   还要补充一点的是 在建立应用的过程中要注意的一点是不要使用全局对象 特别是在child窗口不能用SQLCA作为事物对象(它应该算一个全局变量 Window Plug in方式不支持全局变量) 一定要重新自定义一个事物对象mytransaction 若使用SQLCA单独运行窗口还可以 一旦要在客户端浏览器中出现肯定会报错 而在这儿几乎没有哪本参考书特意强调过 初学者创建自己的应用时很容易在此走弯路   以上只算是建立了PB的应用程序 还要做的有 生成 PBD文件并放到web共享目录下 编写HTML语句嵌入窗口 放到服务器目录下 这里的关键性的HTML语句是 <body> <embed src=cgi pbd/books pbd width= height= window=w_bugao> </body>   Web PB是基于PowerBuilder分布式应用技术之上的 Web PB替代了客户端的代理而已 在PB分布式应用中 PB客户应用和PB服务器应用程序之间的对象分布如所图 所示

  使用Web PB进行基于服务器的开发 可以让PB建立基于服务器的Web应用 允许Web浏览器访问分布式PB应用程序的服务 这些分布式的基于服务器的应用程序可以动态生成HTML页或将HTML发送到Web浏览器 这允许用户支持真正的 瘦 客户机体系 也就是在客户机上只需一个浏览器 这种方式也可以称为纯的Browser/Server方式   如图 所示 客户端通过Proxy对象定义服务器应用程序之中的应用对象 而Web PB不同于传统的客户端应用 Web PB不同于传统的客户端应用 Web PB文件取代了客户端的应用程序 起作用相当于访问服务器应用程序的接口 在浏览器中 用户可以访问分布式PB应用程序中的任何不可视对象的属性和方法 用户还可以向方法传递参数 Web服务器与Web PB通信将这些信息发送给分布式PB应用程序 应用程序会执行方法并将结果以动态HTML的形式返回给浏览器 建立Web PB应用的过程如下   a 建立并测试服务应用(这里是pb_net)   ·创建应用对象   ·创建应用启动窗口   ·创建传输对象   ·创建不可视用户对象   ·编写用户对象函数   b 编写可调用服务应用的HTML页面 这可通过FrontPage等主页编辑器 也可通过Web PB的编程WIZARD来做   c 将应用编译成可执行文件   d 编辑Web PB的几个初始化文件   e 设置Web服务器(主要是文件类型和Web目录的设置等)   f 启动服务应用和Web服务器   g 用浏览器访问应用   服务应用的编写和分布式应用类似 就不再赘述 这里需要补充一点的是 编写用户对象是Web PB应用中的头等大事 并且Web PB中的数据窗口一般用的都是Datastore 这里创建了一个用户对象uo_pbdemo 实际上用户对象应该尽量要创建的多才好 特别是在那些大型的应用中   Web PB方式的应用都是通过HTML中的锚点Anchor(<A>)定义的超链接或者是FORM(<FORM>)元素的可输入域中键入信息后单击Submit按钮(定义的也有超链接)来激活Web PB实现的 而这些超链接的对象形式上都是指向各个用户对象中的函数的(这些函数的返回值均是一系列的HTML文文件) 这一点务必要明确 其实这一点也是Web PB方式的核心思想概念所在   这里uo_pbdemo建立了数个函数 挑出颇具代表性的一个的描述如下   //从数据库中提取新书介绍   //f_retrieve_newbooks()无参数 返回值是string类型的   string ls_   string ls_search_arg   long ll_rows_retrieved

  ds_names = CREATE datastore   ds_names dataobject= d_newbooks   ds_names settransobject(gtr_trans)   ll_rows_retrieved= ds_names retrieve()   IF ll_rows_retrieved > THEN     ls_=ds_names object datawindow data table   ELSE     ls_ = 此次找不到新书!   END IF   RETURN ls_   这是非常关键的一段代码 其实就是调用了数据窗口的table属性而已 要知道这种思想可以说是贯穿了整个Web PB应用的全过程   启动浏览器就可以检索到新书了 当然还有一个前提是 服务器确定是在监听 即刚建立的pb_inet应用必须在运行中   最后还要在服务器端配置几个INI文件 Hosts文件 services文件和PBWEB INI文件 当然这项工作实际上应该在整个工作之前所做的   四 对三种开发方式的总结    .关于Window Plug in的几点体会    )Window Plug in最适用于Intranet网 前面提到过原因 因为需要浏览器的支持 而且需要在浏览器端安装程序文件 另外一个原因就是 Window Plug in主要的执行环境还是浏览器本身所在的本地机环境 只有在内部网的情况下 才能够对应用执行的环境进行比较好的控制 避免出错    )Window Plug in适用于在浏览器端有比较复杂的用户接口的情况 可避免编写大量的HTML和CGI程序 开发Internet经常遇到的一个难题就是在客户端没有足够的组件 现在 有了Window Plug in 只要愿意 就能把独立的PB应用程序转移到浏览器中来执行    )并且 Window Plug in移植和修改现有的应用程序到Web上也可以说是不费什么力气 还可以充分享受数据窗口的强大功能    )在Intranet环境下 安全等因素就不是那么重要了 可允许应用程序访问客户机的磁盘 使用户能够将本地的资源和服务器的资源结合起来应用    )笔者看来 这三种IDT中 Window Plug in方式是最值得用的    关于DataWindow Plug in的几点体会    )DataWindow Plug in可以在Web上发布复杂的报表 加快向Web用户的发布    )它克服了HTML的限制 提供复杂的报表 包括列表形式 交叉表形式和图形方式等    )它没有安全限制 因为PSR文件是制度的 而这个报表并不在本地 运行 PSR报表在浏览器中除了显示之外 只能够运行保存数据和打印两种功能 因此是十分安全的    )DataWindow Plug in时静态显示报表的一种方法 无法直接修改这种方法显示的数据和报表格式 但可以在一个中央位置更新报表    )PSR格式的报表能够包含多种显示风格的数据窗口 但在DataWindow Plug in中 不支持Rich Text格式的报表    .Web PB构建Web应用有如下优点   a 支持CGI ISAPI NSAPI MSAPI等多种网关程序接口   b 支持PowerBuilder中数据窗口的引用   c 易于将以前编写的PowerBuilder应用移植到Web环境下   d 易于创建嵌入PowerBuilder应用程序的HTML文件 应用服务器在运行环境下 将根据用户需求 动态生成HTML语法 发布完全动态的信息   e 支持数据库连接 PowerBuilder所能够连接到的数据库都可以被浏览器用户访问到 使得 Web服务与数据库服务通过Powerbuilder 完整地结合起来   另外 谈一点对Web PB的不足之处 虽然说Sybase公司极力地让PB支持Web方式并且采取了很多方案其中一种就是其引以为豪的Web PB 的确 Web PB在网络数据库方面确实有不小的成绩 可以采用集中式数据库管理 但它在开发网络数据库方面也绝不会成为流行的趋势 它开发初衷就是主要面对广大PB的老用户的(老用户更容易上手) 而且它在页面的开发上过于单调 且不说动态性不强 光是一大堆类库函数 加上每个函数还有数个参数 而且创建页面其实比手写HTML语言还要辛苦(因为它要返回一个完整的字符串到浏览器) 联想到当今的社会发展非常注重效率 很难设想从头单纯学习PB的IDT而仅仅为了编辑过于普通的网页和开发网络数据库 因此在这方面也就是说Web PB广泛推广的价值不大 但是对于已经掌握了PB的开发用户来说 如果不想学习新的语言或工具 用Web PB开发也是一个很好的选择

cha138/Article/program/SQL/201311/16404

相关参考

知识大全 怎样用PowerBuilder开发WEB应用

怎样用PowerBuilder开发WEB应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一P

知识大全 用Delphi开发Web服务数据库程序

用Delphi开发Web服务数据库程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!第一步编写服务

知识大全 在powerbuilder中使下拉列表框可以和数据关联

  在从事使用powerbuilder进行数据库开发的过程中常常碰到要使用列表框来选择数据但是普通的下拉列表框并没有提供和数据相连接的方法而使用数据窗口的子下拉列表框来代替又显得有些别扭下面介绍一种好

知识大全 用 Eclipse 开发 iPhone Web 应用程序

用Eclipse开发iPhoneWeb应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  A

知识大全 创建一个Web项目,配置数据库连接

创建一个Web项目,配置数据库连接  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作为web开发

知识大全 使用jetty配置 开发web应用

   一直以来使用jetty作为我的web开发配置服务器开始的时候和所有的初学者一样使用tomcat作为开发服务器可用着用着感觉tomcat越来越繁琐以及庞大后来用了jb

知识大全 PowerBuilder与数据库的连接

PowerBuilder与数据库的连接  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Power

知识大全 使用PowerBuilder同时访问多个数据库

使用PowerBuilder同时访问多个数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  P

知识大全 JAVA WEB开发中路径问题的总结

JAVAWEB开发中路径问题的总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用Java开发

知识大全 PowerBuilder修改数据库表结构的技巧[2]

PowerBuilder修改数据库表结构的技巧[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!