前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

利用PowerBuilder开发数据库的WEB查询 - PowerBuilder/PB技术交流站(PB源码PB论坛PB框架PB编程框架 PB类库仿SBO编程框架PB即时通讯PBIMPBQQ电子邮件短信平台文档编辑器智能升级工作流) - PB创新网 Email:2322888@qq.com 原创产品定制开发PB培训技术文章编程论坛关于我们 首页 利用PowerBuilder开发数据库的WEB查询 减小字体 增大字体 作者:佚名 来源:本站整理 发布时间:2009-03-16 23:05:54 一、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服务器上,大大减少了对多个客户端的维护工作。另外,由于能够将运算任务合理地分布在浏览器和服务器之间,整个系统运行的费用也将大大降低。 Tags:作者:佚名 [] [返回上一页] [打 印] 1 好的评价 如果您觉得此文章好,就请您 100%(1) 差的评价 如果您觉得此文章差,就请您 0%(0) 用户名: ! 查看更多评论 分 值:100分 85分 70分 55分 40分 25分 10分 1分 内 容: ! 通知管理员 验证码: 点击获取验证码 栏目导航 PowerBuilder 数据库开发 本类热门阅览 1PB中的数据窗口自动刷新技术 2优化你的PowerBuilder程序 3在PB中实现ftp传输 4浅谈PB中动态DataWindow的技术应 5在PB中动态修改SQL语句 6PB修改数据库表结构的技巧 7pb实用代码集(全有例程) 8PB中读取地磅BCD解码 9PB程序中在普通激光打印机上实现 10如何发布独立的PowerBuilder应用 11在PB中调用外部程序并判断其运行 12PowerBuilder中实现数据窗口打印 13在MicroHelp Bar上显示时间 14PowerBuilder菜单属性的修改 15在PB中实现对EXCEL的操作 16PowerBuilder制作IE风格的图标按 17GRAPH在PowerBuilder中的应用在线 18在pb中用winsock控件使用问题 19如何得到下拉数据窗口DDDW列的显 20PB 5中PFC的使用 相关文章 &rsaquo; 利用PowerBuilder开发数据库的WE... &rsaquo; 利用PowerBuilder开发格式生成器... 我要加盟 法律声明 友情链接 站点地图 联系我们 --> 请扫描二维码添加站长微信 本站站长:PCM(12年以上PB开发经验)业务QQ:2322888 QQ讨论群1:94326106(2千人超级群,最火爆的PB讨论群) QQ讨论群2:231518(史上最大的千人IT休闲群,屌丝必入) QQ讨论群3:73513447(千人IT招聘群,招聘求职必入群...) PB创新网版权所有 &copy;2012 蜀ICP备05006790号