AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PowerBuilder

用PowerBuilder6.0建立B/S结构的应用程序

51自学网 http://www.51zixue.net

  二、简单的Internet应用实例

  1.选用Web服务器,配置Web.pb程序。Web服务器种类很多,在此选用Websuit1.1服务器,其它种类的Web 服务器类似。Web.pb程序包括pbcgi60.exe、psisa60.dll、pbnsl60.dll、pbns260.dll、webbagent.dll和pbweb.ini等文件。 注意:设置映射目录/scripts/为c:/ website/ cgi-shl;将上述Web.pb文件复制到/scripts/目录下;将pbweb.ini文件拷贝到WINDOWS NT或WINDOWS 95 的系统目录下;在webpb.ini文件中加入以下内容:

[pb60]

driver=winsock

application=10082

location=202.201.208.6

  2.在Powerbuilder6.0开发平台上,选取Internet选项,创建 Powerbuilder6. 0 应用服务器。 技术要点是:建立Internet应用,加入webpb.pbl 类库文件并作启动服务器的脚本,内容是:

transport.mytransport

mytransport=create transport

mytransport="winsock"

my transport.location="202.201.208.6"

//PowerBuilder6.0应用服务器监听地址

mytransport.application="10082"

//服务端口号

mytransport.listen()

//启动监听服务

return

  3、设置业务数据库服务器和sybase SQL Anywhere本地库wedpb.db的连接。其中业务数据存放到数据库服务器,例如:SQL6.5、Sybase 11、Informix 6.0、Ingres和DB2等类型的数据库;本地库webpb.db中,只存放PowerBuilder 6.0应用服务器的控制信息。

  4、创建用户对象,并为该用户对象编写处理脚本。例如:创建用户对象ur,并给constructor事件编写如下脚本:

mytransaction=create transaction

mytransaction.dbms='ODBC"

mytransaction.dbparm="Connectstring='DSN=WebPb'"

Connect using mytransaction;

if mytransaction.sqlcode<>0 then

messagebox("mytransaction.error="+string(mytransaction. &

sql_dbcode),mytransaction.sqlerrtext)

end if

sqlca.dbms="MSS (Msoft) SQL Server 6.5"

sqlca.DataBase="xyw"

sqlca.Userid="sa"

sqlca.ServerName="Server"

sqlca.logid="sa"

Connect using sqlca;

if sqlca.sqlcode<>0 then

messagebox("sqlca.error="+string(sqlca.sql_dbcode),sqlca.sqlerrtext)

end if

给destructor事件编写如下脚本:

disconnect using mytransaction

disconnect using sqlca

  目的是:当Web.pb调用Powerbuilder6.0服务器时,用户对象自动先建立与数据库的连接,调用结束后断开连接。

  5、编写用户自定义函数,各种业务工作的数据处理都由该类函数来完成。例如,在用户对象UR上,创建一查询功能的函数fp(),其内容是:

string return_html

long ii

datastore data_fp

data_fp=create datastore

data_fp.dataobject="dw_fp"

//dw_fp为已经做好的查询数据窗口

data_fp.settransobject(mytransaction)

ii=date_fp.retrieve()

//检索到的记录数存入变量ii

if ii>=1 then

return_html+=data_fp.object.datawindow.data.htmltable

else

return_html="没有检索到满足条件的数据"

end if

return return_html

  6、启动服务器,再启动Powerbuilder6.0应用服务器; 在客户浏览器端浏览含有如下HTML语法的页面:

  <h2>查询页面实例</h2>

  <A href="/scripts/pbcgi60.exe/pb60/ur/fp?"> 查询开始</A>

  这样Powerbuilder6.0数据窗口dw_fp的内容就可以通过点击超文本链接“查询开始”而显示在客户浏览器界面上,完成一个简单的“瘦”的browser/server应用。

 
 

上一篇:PowerBuilder实用技巧八则  下一篇:Powerbuilder中利用API实现动画特效