用PB开发WEB应用
用PB开发WEB应用烟台教育学院网络中心 孙连三
一、PB Window plug -in 的用途
PowerBuilder Window plug -in 的用途是在HTML 页面中插入PowerBuilder 中定义的窗口对象,此窗口对象上定义的功能在浏览器中一样被执行,相当于在浏览器客户端执行PowerBuilder 应用,因此可以将PowerBuilder 应用发布到Web 应用上。当浏览器访问内嵌了Window plug -in 的HTML 页面时,窗口会被显示在页面的一块固定位置上。用户可以使用页面上定义的控制,触发相应事件,执行相应代码。当浏览器浏览下一个页面时,前面已打开的窗口被自动关闭,打开窗口所需的PowerBuilder 动态链接库被从内存中卸载。插入在页面中的Window 对象及相关对象,如数据窗口对象,被存储在PowerBuilder 中定义的动态链接库(.PBD 文件)中,这些动态链接库被放置在Web 服务器上文档目录下。当页面被浏览器调用时这些动态链接库文件被卸载到客户机器上。浏览器和Web 服务器在PowerBuilder Window plug -in 的操作中,运行步骤如下:
1、浏览器访问Web 服务器,检索HTML 文档,Web 服务器将文档传给浏览器。
2、浏览器识别到Embed 元素时,在页面上预留插入元素所需的空间,并请求Web 服务器卸载.PBD 文件。
3、Web 服务器给浏览器传送表明PBD 文件MIME 类型的标识符application/vnd.powerbuilder6 或application/vnd.powerbuilder6 -s。
4、浏览器接收到PBD 文件的MIME 类型并准备接收PBD 文件。
5、Web 服务器给浏览器传送PBD 文件。
6、浏览器接收到PBD 文件。
7、浏览器查找并调用对应与插入件MIME 类型(application/vnd.powerbuilder6)的动态库文件,该文件在浏览器目录下的plug -in。对于Window plug -in,该文件为NPPBA60.DLL 或NPPBS60.DLL。
8、NPPBA60.DLL 或NPPBS60.DLL 文件调用Powerbuilder 的运行环境动态库。
9、如Embed 元素定义了LIBRARY 属性,则再重复执行上面所述的第三步到第六步,直至所有PBD 文件被卸载到浏览器端。
10、被插入的Child 窗口被显示在浏览器中,并执行其Open 事件下的事件处理程序。如此程序段中有CommandParm 函数调用,则会向浏览器取得Embed 元素中的COMMANDPARM 属性值。
应用实例
二、运行环境
服务器端:Windows NT 4.0、IIS 4.0,SQL Server 6.5
客户端:Windows 98、IE 4.01 、PB6.5
三、IIS4.0 的配置
单击开始| 程序|Windows NT 4.0 Option Pack|Microsoft Internet Information Server|Internet 服务管理器,进入Microsoft 管理控制台,在Internet Information Server 目录下的*SUN 服务器上单击鼠标右键,单击属性,在" 计算机MIME 映射" 框中,单击" 文件类型",单击" 新增类型",在" 相关的扩展名" 框中输入:.PBD,在" 内容类型" 框中输入:application/vnd.powerbuilder6,单击确定,退出Microsoft 管理控制台。
四、客户端配置
1. 运行C:\Windows\REGEDIT.EXE
在HKEY_LOCAL_MACHINE 注册部分添加:
SOFTWARE\Microsoft\Internet
Explorer\Plugins\Extension\.psr
SOFTWARE\Microsoft\Internet
Explorer\Plugins\Extension\.pbd
SOFTWARE\Microsoft\Internet
Explorer\Plugins\MIME\application/datawindow
SOFTWARE\Microsoft\Internet Explorer
\Plugins\MIME\application/vnd.powerbuilder 6
2. 在autoexec.bat 文件中添加如下一行:
PATH D:\SYBASE\SHARED
3. 打开我的电脑, 双击控制面板, 打开ODBC 数据源, 在系统数据源中, 单击" 添加", 选定SQL Server 驱动程序安装数据源, 单击" 完成", 在建立新的数据源到SQL 服务器窗口中, 在" 名称" 框中输入:sql,在" 描述" 框中输入:sql,在" 服务器" 框中输入:SUN,在"SQL 服务器应该如何验证登录标识号的真伪?" 栏中,分两种情况选择:
a、客户端没有安装SQL Server 6.5 客户端软件,选择" 使用Windows NT 验证的网络登录标识号" 项,选择" 连接SQL 服务器以获得用于附加配置选项的默认设置" 项,单击" 下一步";或选择" 使用SQL 服务器验证的由用户输入的登录标识号和密码" 项,选择" 连接SQL 服务器以获得用于附加配置选项的默认设置" 项,在" 登录标识号" 框中输入:sa,在" 密码" 框中输入:sls,单击" 下一步"。
b、客户端安装了SQL Server 6.5 客户端软件,选择" 使用Windows NT 验证的网络登录标识号" 项,单击" 客户端配置" 框,在弹出的窗口中,单击"Net Library",在"Default Network" 框中,从下拉列表框中选择:TCP/IP Sockets,单击"Advanced",在"Client Configuration" 框中,"Server" 框中输入:[url=http://www.ytet.]www.ytet.[/url],"Network Protocol" 框中选择:TCP/IP Sockets,"Connection String" 框中输入:dsn='connectstring=sql;uid=wlzx;pwd=wlzx',单击"Done" 按钮完成" 客户端配置",选择" 连接SQL 服务器以获得用于附加配置选项的默认设置" 项,单击" 下一步";或选择" 使用SQL 服务器验证的由用户输入的登录标识号和密码" 项,单击" 客户端配置" 框,在弹出的窗口中,单击"Net Library",在"Default Network" 框中,从下拉列表框中选择:TCP/IP Sockets,单击"Advanced",在"Client Configuration" 框中,"Server" 框中输入:[url=http://www.ytet.]www.ytet.[/url],"Network Protocol" 框中选择:TCP/IP Sockets,"Connection String" 框中输入:dsn='connectstring=sql;uid=sa;pwd=sls',单击"Done" 按钮完成" 客户端配置",选择" 连接SQL 服务器以获得用于附加配置选项的默认设置" 项,在" 登录标识号" 框中输入:sa,在" 密码" 框中输入:sls,单击" 下一步"。
在下一窗口中,选择" 改变默认的数据库到",单击下拉列表框,选择LLL 数据库,选择" 为准备好的SQL 语句创建临时存储过程并放弃存储程" 中的" 只有当断开时",选择" 使用ANSI 引用的标识符",选择" 使用ANSI 的空值,填充和警告",单击" 下一步",在下一窗口中,在" 您希望如何执行字符集转换?" 项中选择" 让SQL 服务器ODBC 驱动程序选择转换方法",单击" 下一步",在下一窗口中,单击" 完成",在下一窗口中,单击" 确认",完成系统数据源的添加。
五、创建PBD 文件
1. 运行PB6.5,在SQL Server 6.5 的数据库LLL 上创建一个新表DAK(档案库),字段如下:BH(编号)、XM(姓名)、XB (性别)、CSRQ(出生日期)、ZZMM(政治面貌)、WHCD(文化程度)、BM(所在部门)、JG(籍贯),定义BH(编号)为主键。建立一个新的Grid 类型的数据窗口,选择DAK 表中的全部字段,将所在部门、性别、政治面貌、文化程度等字段的编辑类型设为下拉列表框,并填上相应的显示值和数据值,如性别字段:显示值分别为男和女,数据值分别为1 和2。移动鼠标到脚注区(Footer),按住鼠标左键下拉一定区域,放开鼠标左键,然后在脚注区放置3 个按钮对象,将其显示文字分别改为:插入、删除、更新,将这3 个按钮属性中的General 部分的Action 分别选择为:Insert Row、Delete Row、Update,存此窗口为dw_test。
2. 点击窗口画笔,建立一个新的Child 类型的窗口,在窗口中添加数据窗口dw_test,定义窗口上的实例变量mytansaction,为窗口的OPEN 事件添加如下代码:
mytransaction=create transaction
mytransaction.dbms="ODBC"
mytransaction.DBParm="Connectstring='DSN
=sql;UID=sa;PWD=sls'"
connect using mytransaction;
dw_1.settransobject(mytransaction)
dw_1.retrieve ()
存窗口为w_test,点击Library 画笔,点击菜单项Library 的Build Runtime Library 项,点击"OK",开始建造TEST.PBD 文件。
六、拷贝TEST.PBD文件到Web服务器中有读权限的目录中
本例拷贝TEST.PBD 文件到NT 服务器上的d:\inetpub\wwwroot 子目录下。
七、在NT 服务器上的d:\inetpub\wwwroot子目录下建立HTML文件WINPLUG.HTM
WINPLUG.HTM 文件内容如下
< html >
< head >
< title > PowerBuilder Window Plugin Example< /title >
< meta NAME="GENERATOR"
CONTENT="Microsoft FrontPage 3.0" >
< /head >
< body BGCOLOR=" #FFFFFF" >
< h2 > PowerBuilder Window Plugin Example< /h2 >
< hr >
< p > < embed SRC="test.pbd" WIDTH="550"
HEIGHT="400" WINDOW="w_test" > < /p >
< hr >
< /body >
< /html >
八、客户端输入地址
打开Internet Explorer,输入地址:HTTP:
//WWW.YTET.,回车,浏览器里显示如下:
用户可在客户端通过浏览器完成对记录的添加、删除等操作。