利用POWERBUILDER开发数据库的WEB查询

转载 2012年03月30日 21:40:29

利用POWERBUILDER开发数据库的WEB查询

(加入日期:2001-11-26)

保存文章至硬盘】【打印文章】【字体:

分享到: 0
一、WEB.PB的工作原理

POWERBUILDER对分布式计算的支持使得它能够通过INTERNET/INTRANET来调用远程对象服务。通过WEB.PB,可以将POWERBILDER的分布式计算能力扩展到WWW网中。WEB.PB允许服务器动态地将内容转换成HTML传送到客户端的浏览器中。当一个HTML文档调用了一个远程对象的方法或者函数时,WEB.PB将请求结果传送给POWERBUILDER的服务应用,由POWERBUILDER的服务应用执行相应的代码,并将结果返回给浏览器。这就是WEB.PB的工作原理,它实际上是通过网关接口(CGI)来调用PB应用服务的。在HTML中有两个标签,可以用来调用PB的应用服务:窗体< FORM >和锚点< A >,前者是在窗体命令中激活一个PB应用,后者是通过调用超链接来指向PB应用的。

二、系统的运行环境

合肥市电信局网管中心目前运行的电话网网管系统有本地网集中监控和维护系统和长途网管系统,其中本地网网管系统采用安徽省自行开发的一套系统,服务器为ALPHA 4000小型机,操作系统为Digital Unix 64,长途网管采用邮电部电信总局统一开发的ROMA系统,操作系统为SCO UNIX,数据库均为SYBASE SQL SERVER。我们另外采用了一台IBM Netfinity 3000作为WEB服务器,采用Microsoft Windows NT 4.0为操作系统, IIS4.0提供WWW服务。在安装POWERBUILDER 6.0时选择自定义安装,然后选择Internet Tools中的WEB.PB选项即可。

三、配置IIS服务器

Microsoft Internet Information Server(IIS)的主目录下有一个子目录\scrips,这是IIS用来存放CGI程序的目录。如果需要使用标准CGI程序,则将\PB6\IT\BIN\PBCGI60.EXE复制到这个目录下即可,如果使用ISAPI接口,则需要复制的文件是pbisa60.dll。

但是为了保证服务能正常运行,还必须自行查看IIS服务的目录映像表,其步骤如下:

1、确定IIS已经安装且运行正常。

2、运行Internet Service Manager程序。

3、选择需要安装配置的Web服务(IIS支持多种服务,并能够对多台计算机的服务进行管理)。

4、从菜单条中选择属性菜单下的服务属性菜单项。

5、选择Directories页。

6、确定有一个别名为/scripts/的目录项(别名即虚拟目录名)。

7、选择/scripts/,并单击Properties按钮。

8、确定Execute是在Access组中唯一被选中的项目(在这个目录中不允许客户机执行读写操作)。

9、如果对属性作了修改,选择OK进行保存。

10、如果没有/scripts目录,可以添加一个。

四、编辑hosts 和 services 文件

采用任何一个文本编辑器,编辑这两个文件。通常hosts文件在c:\winnt\system32\driver\etc目录下,添加下面一行:

134.65.5.212 HFSA

其中HFSA为主机名,134.65.5.212为IP地址。

在c:\winnt\services文件中添加下面一行

myapp 100015/tcp

这一行的意义在于将所创立的PB服务添加到Windows的服务注册文件中。使用TCP/IP协议的应用程序都需要使用一个端口,服务应用程序将在这个端口布置一个监听程序,这个程序能够捕捉到任何发送到这个端口的请求,并将请求输送到应用程序中。比如,HTTP协议协议使用端口80,FTP采用TCP的端口21。这里指定myapp 使用TCP的端口100015。获取一个可用端口的方法是把上一行的端口号加1即可。

五、查询目标

SQL SERVER名: "HFWG2_SYB"

数据库名:exsydb

表名和表结构:s12_a010007

字段名 数据类型 长度 字段意义
Ofcname char 10 局名
Date int 4 日期
Time smallint 2 时间
Name char 16 路由名称
Ncit Int 4 电路数
Ncct float 8 可用电路数
Pegs int 4 呼叫次数
Seiz Int 4 占用次数
Succ int 4 成功次数
Answ Int 4 应答次数
Serl float 8 占用话务量
Rerl float 8 通话话务量
Retries int 4 中继重选次数
no_answ int 4 久叫不应次数
cong_dist int 4 对端拥塞次数
ls_busy int 4 对端市话忙次数
ts_busy int 4 对端长话忙次数


要求在浏览器中输入日期和时间,对表s12_a010007查询,并在网页中反映出结果。

六、创建Powerbuilder应用程序

1、 新建一个应用(myapp)。

2、 新建一个窗口(w_1),定义一个instance 变量(i_server_transport)。

3、 单击应用画板中的script按钮,为myapp应用的open事件编写代码如下:

open(w_1)

4、 打开窗口w_1,为它的open事件编写代码如下

int li_ListenReturnCode
/*创建传输对象,并设置其属性*/
i_server_transport = CREATE transport
i_server_transport.driver="winsock" //采用TCP/IP协议
i_server_transport.application="myapp" //应用名称
i_server_transport.location="HFSA" //本地连接
/*监听客户,并返回状态值*/
li_ListenReturnCode= i_server_transport.Listen()
if(li_ListenReturnCode< >0) then
MessageBox("服务器监听出错"&
"服务器不能正常进行监听:~r~n~r~n"+&
"请确保当前TCP/IP服务不能被其它埠占据,以及"+&
"myapp 10015/tcp",stopsign!)
Halt
Endif

5、 为w_1的close事件编写代码如下:

i_server_transport.stopListening() //停止在埠的监听
DESTORY i_server_transport //从内存中清除传输对象
close(parent)

6、 创建一个datawindow(d_zy),查询条件为日期、时间。这是POWERBUILDER的特色之一,这里就不作详细解释。

7、 定义一个用户对象u_web_ct1,并定义一个UserObject Function f_get_2a01(integer date,integer time) return string

其代码如下:

datastore ds_tf
string ls_html
int li_rowcount
//连接数据库
sqlca.DBMS="SYC Sybase System 10 CTLIB"
sqlca.Database="exsydb"
sqlca.UserId="sa"
sqlca.Dbpass=""
sqlca.LogPass=""
sqlca.ServerName="HFWG2_SYB"
sqlca.LogId="sa"
sqlca.DbParm=""


connect using sqlca;

if sqlca.sqlcode < > 0 then
Messagebox(" ","connect error")
end if

ds_tf = create datastore

ds_tf.dataobject="d_a01"
ds_tf.SetTransObject(sqlca)
li_rowcount=ds_tf.Retrieve(date,time)

if li_rowcount=0 then
disconnect using sqlca;
return "no record!"
elseif li_rowcount< 0 then
disconnect using sqlca;
Return "retrieve failure!"
end if


ls_html = ds_tf.Object.DataWindow.data.HTMLTable


destroy ds_tf
disconnect using sqlca;

return ls_html


七、 使用

1、在主页中添加如下代码:

< form name="form1" method="post"
action="http://134.65.5.212/scripts/
pbcgi60.exe/internet/u_web_ct1/f_get_2a01?" >

< font size="-3" >< b >< p >日期: < input type="text" name=
"date" size="20" > < /b >< /font >< /p >
< p >< b >< font size="-7" >时间: < /font >< font size="-3" >
< input type="text" name="time" size="20" > < /font >< /b >< /p >
< p >< input type="submit" name="Submit" value="Submit" > < /p >
< /form >

2、运行myapp应用,启动浏览器,输入日期和时间,结果如下:



八、小结

由于POWERBUILDER是专业级的数据库开发工具,可以不受数据库的种类和平台的限制,采用它的WEB.PB技术来进行Internet/Intranet开发,能够将开发者的精力都集中到业务逻辑的实现上,而不是花费大量的时间去考虑和数据库连接的问题。这种基于浏览器/服务器结构的应用优势在于系统的维护简单,几乎所有的工作都集中在WEB服务器上,大大减少了对多个客户端的维护工作。另外,由于能够将运算任务合理地分布在浏览器和服务器之间,整个系统运行的费用也将大大降低。

powerbuilder的web开发技术

web targets      web datawindowdatawindow web control for ActiveXdatawindow plug-inpowerbuilder wind...
  • qyz
  • qyz
  • 2006年08月04日 10:21
  • 689

PB-PowerBuilder125开发Webservice的DEMO_从配置IIS到发布接口到调用webservice

PowerBuilder125开发Webservice的DEMO, 从IIS配置都12.5发布webservice,到pb建立工程调用,一条龙,配详细文档,免下载分下载。...
  • yangjinchao
  • yangjinchao
  • 2016年09月04日 17:19
  • 1989

使用PowerBuilder同时访问多个数据库

随着网络的延伸和信息系统的不断开发,系统集成面临着如何将分布在不同服务器上的数据库系统集成到一起的问题。某个客户应用可能需要在同一窗口同时访问两个服务器上的两个不同种数据库,PowerBuilder为...
  • happymagic
  • happymagic
  • 2014年11月21日 14:45
  • 947

用Powerbuilder开发WEB数据库

用Powerbuilder开发WEB数据库 (加入日期:2002-1-15) 【保存文章至硬盘】【打印文章】【字体:大 中 小】 分享到: 0 流星雨   一、引言 我们知...
  • hunter403
  • hunter403
  • 2012年03月30日 21:42
  • 315

powerbuilder使用导入导出表数据

powerbuilder的使用1.选择configure ODBC 配置odbc数据源2.工具栏选择 DB profiles 选择 刚才创建的ODBC数据源3.选择 database 然后选择 DB ...
  • ajaxinaction
  • ajaxinaction
  • 2005年12月29日 20:58
  • 1427

【实践】——PowerBuilder登录+PB自带数据库

用PowerBuilder实现登录小程序+用PB自带数据库 图文详细介绍了PowerBuider的创建窗体方法和如何创建连接数据库,并通过登录功能为实例,可以帮助初学者容易的理解体会。...
  • u012654963
  • u012654963
  • 2015年12月20日 22:12
  • 2290

Web Service笔记(二):利用CXF开发Web Service

一、CXF开发简单的WS服务与客户端 (一)
  • u012228718
  • u012228718
  • 2014年11月22日 14:25
  • 2442

在PowerBuilder中利用DataStore实现查询条件的记忆

在PowerBuilder中利用DataStore实现查询条件的记忆 (加入日期:2002-7-29) 【保存文章至硬盘】【打印文章】【字体:大中 小】 分享到: 0 北京延庆某部科...
  • hunter403
  • hunter403
  • 2012年04月05日 16:20
  • 376

PowerBuilder 编程技巧实例

随着数据库技术在各行各业的广泛应用,作为企业级数据库前端开发工具的Power Builder日益成为开发人员的得力助手。PowerBuilder以其开放的体系结构,友好的用户界面和简洁高效的开发环境赢...
  • Luckeryin
  • Luckeryin
  • 2007年01月19日 09:36
  • 1729

关于PowerBuilder连接SQL Server数据库的一些问题

1、在SQL Server 2000使用两类身份验证:Windows身份验证和SQL Server身份验证。 那么应该怎样在PowerBuider连接数据库中的时候体现呢?主要是通过pb中的事务对象的...
  • Awang_126
  • Awang_126
  • 2006年09月23日 16:16
  • 1356
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用POWERBUILDER开发数据库的WEB查询
举报原因:
原因补充:

(最多只允许输入30个字)