怎样用PowerBuilder开发WEB应用

怎样用PowerBuilder开发WEB应用,第1张

1 powerbuilder中的web应用模块

powerbuilder中含有开发web应用的模块,通过这些模块可以连接web服务器与powerbuilder应用.该模块包括以下及部分,webpb:是几个可以在web服务器上执行的程序,被服务器激活后,调用powerbuilder应用,完成客户端任务和对数据库的事务 *** 作.plug_ins(插入件):包括window plug_in和datawindow plug_in,此方式可将powerbuilder对象嵌入到页面中,在浏览器端执行powerbuilder应用.window activex: 此方式与window plug_in类似, 所不同在于该方式可以和html中的javascripts,vbscripts交互.本文主要讨论利用webpb开发web应用.

2 用webpb开发web应用

webpb本身就是个cgi程序,它提供了从服务器到powerbuilder应用的访问.所以在webpb之上,可以利用powerbuilder的强大功能开发复杂的web应用,如采用powerbuilder的powerscripts语言环境,数据窗口

术等.powerbuilder的web应用构建前提是分布式应用体系.powerbuilder的客户端应用分布到web服务器上,可将webpb看

作为客户端应用.当客户端应用webpb被web服务器激活后,调用powerbuilder的服务器应用,执行在服务器应用中定义的方法,实现业务逻

这种模式是真正的“廋”客户机模式,客户端不需要安装其它软件,只安装浏览器软件.所有的事务 *** 作都在服务器端完成,下面将结合实例详细说明:

用powerbuilder开发一个网上购书应用.对于分布式powerbuilder应用,首先应向客户webpb指明powerbuilder服务

器应用在网络上的位置(location),其应用名,使用文件pbwebini来记录服务器应用信息.在此例中,取服务器应用名为tutorial,

driver=winsock, application=10099/tcp, location=localhost

建一个数据库(book_dealing)其中有三个表,分别为:

“ book”: b_name, b_no, b_publisher, b_price,b_num

“customer”: c_name, c_tel,c_addr

“dealing”: b_name, c_name, d_num, d_time

建一个数据窗口dw_book,其sql语法为:

select “book””b_name”,

“book””b_no”,

“book””b_publisher”,

“book””b_price”,

“book””b_num”

from “book”

创建pb服务器应用的用户界面。在窗口w_server上有两个按钮cb_1,cb_2,再定义一个transport类型的实例变量mytransport,cb_1的clicked事件有关程序如下:

mytransport = create transport

mytransport driver = “winsock”

mytransportlocation = “localhost”

mytransportapplication = “10099”

创建一个不可视的用户对象u_internet,定义一个transaction类型的全局变量mytransaction,在该用户对象的constructor事件中定义连接到数据库(book_dealing)的事务对象mytransaction和连接到数据库(webpb)的事务对象sqlca,在该对象的destructor事件中分别取消这两个事务对象。

在u_internet上定义两个函数分别为f_book, f_book_dealing,这两个函数的返回值都为字符类型。在f_book中,利用数据窗口dw_book作数据库查询,再利用数据窗口的属性将查询结果以html形式返回给webpb,有关程序如下:

string return_html

datastore dd

dd = create datastore

dddataobject = ”dw_book”

ddsettransobject(mytransaction)

ddretrieve()

return_html=return_html+ddobjectdatawindowdatahtmltable

return return_html

函数f_dealing中,定义参数分别为:book_name, deal_num, custom_name, deal_time,

custom_tel,

custom_addr,用来接受form元素传来的信息。再利用powerscripts语言对数据库(book_dealing)进行修改。有关程序

如下:

string return_html

…………

connection using mytransaction;

insert into “customer”

(“c_name”,

“c_tel”,

“c_addr”)

values( :custom_name, :custom_tel, :custom_addr);

insert into “dealing”

(“b_name”,

”d_num”,

”d_time”,

”c_name”)

value(:book_name, :deal_num, :deal_time, :custom_name);

if mytransactionsqlcacode>0 then

return_html=”定货成功!”

else

return_html=”定货失败!”

endif

………

return return_html

主页上的“浏览书库”的超连接为:

〈a herf=”/scripts/pbcgi60exe/tutorial/u_internet/f_book”〉 浏览书库</a>

定书信息页上应有几个单行编辑器,用来录入用户购书信息(例如:书名,用户名,购书数量,等等)其form元素的action为:

<form action= “/scripts/pbcgi60exe/tutorial/u_internet/f_book_dealing”method= “get”>

以上程序可实现简单的网上购书的功能,既用户可浏览书库,也可订购所需的图书。

powerbuilder不是c/c++的开发环境

PowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/服务器体系结构研制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。

在当前,网络技术迅速发展,随之发展的还有OLE,OCX,跨平台等技术,而在PowerBuilder的最新版PowerBuilder 60中提供了对这些技术的全面支持。总之在数据库开发工具领域,PowerBuilder是其中非常优秀的一个,利用它我们可以开发出功能强大的数据库应用程序。

PowerBuilder是一个图形化的应用程序开发环境。使用PowerBuilder可以很容易地开发和数据库打交道的商业化应用软件。PowerBuilder开发的应用软件由窗口构成,窗口中不仅可以包含按钮、下拉列表框及单选按钮等标准的Windows控件,还可以有PowerBuilder提供的特殊的控件。这些特殊控件可以使应用软件更容易使用,使应用软件的开发效率更高。例如,数据窗口就是PowerBuilder提供的一个集成度很高的控件,使用该控件可以很方便地从数据库中提取数据。

商业化的软件开发要求有很好的移植性。PowerBuilder既可以跨平台开发,也可以发行跨平台软件。例如,在Windows 95下开发的程序,可以不修改源程序而形成UNIX下的执行文件或Macintosh下的执行文件。在开发小组中,不同成员可以使用不同的开发环境,但由于PowerBuilder的支持,在不同的开发环境下看到的共享PowerBuilder对象是相同的,所以仍可以同时开发同一个应用程序。

随着Internet的普及,开发Internet应用的需求激增。PowerBuilder 80及时地强化了Web开发功能,并提供了一些配套的开发工具,使PowerBuilder程序员不用再学习其他的开发工具就能开发基于Web的应用。

121 画笔

PowerBuilder开发环境由一系列的画笔(Painter)组成。画笔就是完成一定功能的工具,比如窗口画笔定义窗口对象,用户对象画笔定义用户对象,数据窗口画笔定义数据窗口对象以及库画笔完成应用库的增加、删除和修改等。开发人员可以通过打开、新建相关对象进入到相关的画笔中,这点和PowerBuilder 65版本以前的有所不同。在画笔中通过简单的鼠标 *** 作就能设计、建立和测试相关的PowerBuilder对象。画笔中包含很多画笔工具,用来完成该画笔的功能。这些功能都是和具体的画笔相关的。

如图1-1所示是各个画笔构成的主 *** 作环境中的工具条,相关术语称为PowerBar,它是由很多图形化的小图标构成的,每个小图标代表一种或者一类功能。将鼠标在该小图标上停留片刻后,鼠标旁边会显示图标的名称,窗口底部的信息提示栏(MicroHelp)中显示该图标功能的详细描述。

122 事件和脚本

PowerBuilder应用程序是事件驱动的。字符环境下的程序一经运行,用户就不能控制程序的执行流程了。其中也有一些有限的提问,但程序的执行流程是确定的。而PowerBuilder应用程序的执行流程是根据运行时事件的发生情况来决定的。用户可以单击按钮,选择菜单,也可以在数据窗口中输入数据,这时都会触发相应的事件。事件什么时候触发取决于事件的定义。PowerBuilder为很多控件(control)预先定义了大量事件,这些事件的触发时机已经定义好了。开发人员需要掌握这些事件的触发时机,才能决定自定义事件的触发时机,才能知道在哪些控件的哪些事件中编写脚本。

每个事件的发生都得满足一定的条件,除了掌握事件的触发时机外,还要清楚事件是在哪个(或哪些)控件上发生的。触发条件通常是用户的动作,当有什么动作时什么事件才发生。有些脚本也可以触发其他事件,例如,在一个按钮的Clicked事件中打开另外一个窗口时会触发另外一个窗口的Open事件。事件是属于特定控件的。例如,按钮可以单击,触发Clicked事件;而窗口上的线控件(line)的单击就没有什么意义,所以线就没有Clicked事件。

脚本(Script)是由PowerScript的命令、函数、语句及SQL语言等组成的命令集合,用来响应事件,做相应的处理工作。例如,可以在窗口的打开事件中编写脚本,在检索数据窗口中显示数据;在编辑框中可以编写脚本来校验用户的输入数据是否符合特定的要求,比如是否是数字等。脚本和事件的关系是,脚本的执行最终依赖于事件,没有不通过事件的触发就可以执行的脚本。

123 函数

PowerBuilder提供了大约600个内置函数,这些函数是构成脚本的基本元素。函数一般都是针对特定的对象 *** 作的,例如,GetitemString是用来从数据窗口中读取string类型的字段的取值的,它不能用来 *** 作其他的对象;函数FindItem是从列表框、下拉列表框、图形列表框及图形下拉列表框等对象中查找字符串的,不能用来从数据窗口中查找。PowerBuilder是面向对象的,因此具有多态性,很多函数都有多种格式。例如,经常用来显示信息的函数messagebox有4种格式,系统会自动识别使用哪种。

程序员可以自己定义函数,不仅逻辑结构清楚,方便重复调用,而且有利于程序的封装。可以定义多个同名但不同参数的函数。自定义函数和内置函数的使用一样,在函数的作用域中的任意脚本里都可以调用自定义函数。自定义函数还可以调用本身,以编写递归程序。

124 库文件

PowerBuilder对象,如菜单、窗口、数据窗口和用户对象等都保存在库文件中。库文件的后缀是PBL。使用普通的编辑器无法查看其中的内容,使用PowerBuilder的library画笔可以打开它。在开发环境中,PowerBuilder从库文件中检索所需要的对象。

一个应用中可以有多个库文件,这时应该设置应用的搜索路径。可以根据对象的使用频率或者功能的不同将对象放在不同的库中。例如,将报表的相关对象放在reportpbl库中,将查询相关的对象放在querypbl中。这些不同库文件的组织策略应根据个人开发方便和系统的执行性能来确定。

125 创建执行文件

应用程序开发完毕后,可以使用PowerBuilder提供的工具创建执行文件,交付给用户安装盘。PowerBuilder提供打包应用程序的简单方法,方便快捷地创建商业化的安装盘。安装界面是用户接触应用程序的第一步,第一印象的好坏很重要,反映出开发人员对自己的客户重视程度。无论如何,提供给用户一个漂亮的安装界面,这肯定是没错的。

第一步:打开pb9

第二步:点击file→new,在d出的窗口中点击workspace,新建一个workspace

第三步:点击file→new,在d出的窗口中点击target→application,新建一个application。

第四步:新建一个窗口,在上面添加数据窗口、按钮等控件。

第五步:编译运行。

string zh,mm

int count

zh=sle_zhtext

mm=sle_mmtext

if len(zh)=0 then

messagebox("","请输入用户名!",stopsign!)

return

end if

select count () into :count from t_mm

where zh=:zh and mm=:mm;

if count >0 then

g_zh=zh

g_mm=mm

open(w_cx)

close (w_login)

else

messagebox("","用户名或密码不正确,重新输入!")

sle_zhtext=""

sle_mmtext=""

sle_zhsetfocus( )

end if

这些够么,很基础

PowerBuilder是目前最流行的数据库前端开发工具之一 这一点是毫无疑问的 凡是使用过PowerBuilder的程序员都有一个共同的体会 那就是相对于其它的客户/服务器开发工具而言 PowerBuilder提供的开发环境不仅方便快捷 功能也极为强大 是理想的数据库前端开发工具

PowerBuilder采用的是目前流行的图形化的界面和可视化的编程方法 通过引入独具特色的数据窗口对象 使得程序员可以可视化地完成对数据库的 *** 作 PowerBuilder提供了对目前流行的几乎所有的大型数据库和桌面数据库的支持 同时它自身也附带了一个小的数据库管理系统Sybase SQL Anywhere PowerBuilder支持多种软硬件平台 它不仅可以跨平台共享程序中的各种对象 还支持应用程序的跨平台开发和分布 极大地减轻了程序员在不同平台上移植程序的工作量

本光盘是为那些具有一定的WINDOWS编程经验 希望使用或者想深入了解利用PowerBuilder进行数据库应用程序开发的读者而编写的 在学习光盘的一开始 我们通过一个实用的例子带你快速进入PowerBuilder的精彩世界 然后通过原理加实例的方法向你详细介绍PowerBuilder的基本原理和各种高级实用的编程技术 在这张学习光盘中 你不仅可以学会使用开发基本的PowerBuilder应用程序所必须的应用对象 窗口 控件 菜单 数据窗口对象 POWERSCRIPT语言等基本内容的原理和使用技术 更可以学会在应用程序中使用用户对象 调试程序 打印 使用报表 数据管道 数据窗口高级技术 实现分布式计算等各种编写功能强大的高质量应用程序所需要的核心技术 从这个角度而言 本光盘对有一定PowerBuilder基础的读者而言 也有着极大的参考价值

参与开发本教学光盘的都是正在使用PowerBuilder进行数据库应用程序开发的高校年轻老师和研究生 他们有着丰富的实际编程经验 凭著对PowerBuilder开发工具的热爱 他们把自己学习和使用PowerBuilder多年所得来的 经验无私地奉献给广大的读者 衷心期望你通过本光盘的学习能成为PowerBuilder高级开发人员中的一员

什么是PowerBuilder

在开始学习PowerBuilder之前 首先要弄清楚的问题是什么是PowerBuilder 它是用来干什么的 它的特点又是什么 只有知道了PowerBuilder的功能和特点所在 我们才能知道什么时候应该选用PowerBuilder作为我们的应用程序开发工具

我们知道 数据库应用是当前计算机应用的一个非常重要的方面 而在目前的数据库应用技术中普遍采用的就是客户机/服务器体系结构 在这种体系结构中 所有的数据和数据库管理系统都在服务器上 客户机通过采用标准的SQL语句等方式来访问服务器上数据库中的数据 由于这种体系结构把数据和对数据的管理都统一放在了服务器上 就保证了数据的安全性和完整性 同时也可以充分利用服务器高性能的特点 正因为客户机/服务器体系结构的这些优点 因而得到了非常广泛的应用

PowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购) 它完全按照客户机/服务器体系结构研制设计 在客户机/服务器结构中 它使用在客户机中 作为数据库应用程序的开发工具而存在 由于PowerBuilder采用了面向对象和可视化技术 提供可视化的应用开发环境 使得我们利用PowerBuilder 可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序

lishixinzhi/Article/program/SQL/201311/16425

db数据库文件可以使用系统自带的ODBC数据源管理器来配置,选择驱动程序时使用Adaptive Server Anywhere,在配置时候需要用户名和密码,配置完成后可以测试连接,看是否成功。如果成功的话可以在PB的DatabaseProfiles中增加一个连接,如图:

在上面点击New,在d出的窗口的Data Source中选择你在ODBC中配置的数据源即可。

但愿你能成功~~

以上就是关于怎样用PowerBuilder开发WEB应用全部的内容,包括:怎样用PowerBuilder开发WEB应用、power builder、建立一个简单的powerbuilder应用程序需要的步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10073628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存