阅读更多
目 录
1 ASPPB.NET介绍 5
2 适用范围 5
3 资源和工具 6
4 配置环境清单 6
5 ASPPB.NET应用框架服务器搭建(配置篇) 6
5.1 ASPPB.NET环境配置 6
5.1.1 必备程序 6
5.1.2 IIS安装配置 7
5.1.2.1 IIS服务安装 7
5.1.2.2 IIS服务选择默认的ASP.NET版本(仅仅适用IIS5和6) 7
5.1.2.3 部署IIS7及以上版本的系统Windows 7或Windows2008 8
5.1.3 AspPb.Net Demo程序部署到IIS上 8
5.1.4 AspPb.Net 打包发布程序介绍 8
6 ASPPB.NET功能介绍及类库介绍 9
6.1 ASPPBNETLIB.PBD类库介绍 9
6.1.1 PbniTransction 对象介绍 10
6.1.2 PbniHashTable 对象介绍 10
6.1.3 PbniDwimplHelp 对象介绍 11
6.1.3.1 设置要查询的数据窗口对象到DwHelp服务对象 11
6.1.3.2 对数据窗口执行查询 11
6.1.3.3 更新数据窗口 11
6.1.3.4 执行Select语句返回datastore 11
6.1.3.5 读取Blob对象 12
6.1.3.6 执行Inset、update、delete语句 12
6.1.3.7 动态调用web服务 12
6.1.3.8 上传文件 12
6.2 DEMO应用程序主程序配置说明 12
6.3 数据窗口服务例程 13
6.3.1 数据窗口查询功能 14
6.3.2 数据窗口保存更新功能 14
6.4 动态SQL语句写法及存储过程调用 15
6.4.1 Insert语句写法介绍(可以更新blob类型字段) 15
6.4.2 Update语句写法介绍 (可以更新blob类型字段) 15
6.4.3 Delete语句写法介绍 16
6.4.4 Select语句写法介绍 ,数据返回为datastore 17
6.4.5 读取BLOB字段 17
6.4.6 存储过程调用 17
6.5 动态WEB服务的调用 18
6.6 文件上传功能介绍 18
7 ASPPB.NET开发DEMO界面预览 20
1 AspPb.Net介绍
AspPbNet框架是一套联合DoNet和Pb进行快速开发基于富客户端BS多层架构应用的开发框架,后台采用Oracle、sqlserver数据库,应用服务采用IIS服务器,前端可以直接用pb进行开发,形成项目后可以快速发布到IIS应用服务器上,最终实现互联网架构的应用;
服务端采用Datawindow.net与DoNet技术想结合,对Retrieve出来的数据进行压缩后发给客户端,客户端经过解析还原数据;客户端完全采用PB开发,本地连接数据库进行开发,跟平常的开发没有任何区别,最后开发功能完成后要对程序进行编译,编译的文件通过打包发布工具发布到IIS应用服务器上,这样你的应用可以在互联网上运行了;
首次运行需要自动安装一个客户端插件,这里面主要是pb的运行环境和第三方需要的Dll和Ocx文件(如果你的pb开发用到了第三方dll、ocx则需要打包这些文件到安装包中);
为了让广大用尽快熟悉产品的应用,在此将会对框架的使用及说明进行描述,后续如果增加的功能将会持续更新本文档。
2 适用范围
本规范适用于采用AspPb.Net框架开发的整个过程。
3 资源和工具
引用标准:DoNet4.0
工具:
Vs.net 2010 C++ C#
PowerBuilder11.5 及以上版本
4 配置环境清单
表1 清单
如下列表:
1、 DoNet2.0、4.0的应用环境
2、 IIS5.1以上应用服务器
3、 Oracle、Sqlserver后台应用数据库
4、 Pb11.5开发工具
5、 AspPbNet打包工具
6、 AspPbNet服务程序
5 AspPb.Net应用框架服务器搭建(配置篇)
5.1 AspPb.net环境配置
5.1.1 必备程序
应用服务器或目标电脑必须具备:Windows XP SP2中,Windows 2003中,Windows 7中或Windows2008操作系统;NET Framework 2.0和NET Framework 4.0的运行环境;微软的Visual C++运行时库MSVCR71.DLL,MSVCP71.DLL和微软活动模板库(ATL)模块,atl71.dll和PowerBuilder的.NET程序集在全局程序集缓存(GAC),PowerBuilder运行动态链接库在系统路径;
PowerBuilder运行DLL和.NET程序集部署到服务器或目标计算机的最简单的方法是使用PowerBuilder的运行打包机工具。运行Packager会建立一个MSI文件安装您所选择的文件,注册任何自注册DLL,。NET程序安装到全局程序集缓存(GAC)。
5.1.2 IIS安装配置
5.1.2.1 IIS服务安装
您可以从控制面板安装IIS,但您可能需要在Windows操作系统CD。选择从“控制面板”的“添加和删除程序”,然后单击“添加/删除Windows组件”,选择“Internet信息服务”复选框,并单击“下一步”。然后,您可以按照指示安装IIS。在Vista、Win7等以上版本,在控制面板中的“程序和功能”页面,选择“关闭Windows功能打开或关闭,并选择Internet信息服务。
如果IIS5.0或更高版本后安装。NET框架,你必须注册IIS与ASP.NET手动或重新安装。NET框架。要手动注册IIS与ASP.NET。NET Framework的路径,运行ASPNET_REGIIS.EXE-I在命令行控制台,重新启动IIS。
5.1.2.2 IIS服务选择默认的ASP.NET版本(仅仅适用IIS5和6)
如果你安装了多个版本的。NET Framework的目标Web服务器上,你应该确保IIS使用受支持的版本的PowerBuilder。NET应用程序。这种变化可以使全球范围内,所有的ASP.NET Web站点应用程序或单个应用程序部署到IIS。
具体配置方法:打开IIS管理器,选择要配置的网站,右键选择属性页里ASP.NET选项卡,并选择ASP.NET版本最新版本或更高版本。
以下步骤适用于IIS5和6。在IIS 7中,您可以设置应用程序使用的应用程序池。NET Framework版本。欲了解更多信息,请参阅“Windows Vista和Windows2008的配置要求”。
5.1.2.3 部署IIS7及以上版本的系统Windows 7或Windows2008
部署到默认应用程序池
虚拟目录在IIS 7中托管的应用程序池中。应用程序池是一个或多个Web应用程序的主机进程。当您部署AspPb.Net项目到 IIS 7 ,最好是创建一个新的应用程序池,设置。NET Framework版本为4.0 ,将应用程序部署到一个新建的AspPb.Net应用程序池名为AspPbNetPool的池上面。
注意:在64位操作系统上应设置 AspPbNetPool的池配置为运行32位应用程序(配置说明:在“应用程序池”列表中,选择“AspPbNetPool”在“操作”窗格中,选择“高级设置”下的“编辑”应用程序池“ 。展开“常规设置” ,设置为True启用32位应用程序,并单击“确定”)。
5.1.3 AspPb.Net Demo程序部署到IIS上
将AspPb.Net Demo部署到IIS上:
IIS5、6版本新建虚拟目录,指定应用程序地址,检查.Net Framework版本为4.0即可完成部署;
IIS7及以上版本需要新建一个网站,选着上文已经讲到的应用程序池AspPbNetPool,指定应用程序所在目录即可完成应用程序部署;
5.1.4 AspPb.Net 打包发布程序介绍
AspPb.Net打包发布程序是一套可以将pb开发好的程序快速打包发布到已经部署好的IIS应用服务器上,客户端刷新网页即可使用最新发布的程序;
操作说明:
新增:增加一个要发布的类库或资源文件;
删除:删除一个已经配置好的类库或资源文件;
插入:插入到一个指定位置的类库或资源文件;
发布:将配置好的类库或资源文件打包到指定的iis应用目录下;
配置发布路径:指定发布程序要发布到的应用程序目录;
备注:第一行必须为应用程序的主目录,否则框架将不能运行,用户可以根据自己应用程序的需要配置应用程序发布时用到的dll、ocx、ini图片等其他文件;
当发布成功后,行状态为NO,表示不用发布了,服务器上已经是最新的程序了;如果为YES说明本地程序已经进行了更新,需要进行发布并用红色字体显示出来;
6 AspPb.Net功能介绍及类库介绍
主要介绍数据窗口的查询,更新等操作,动态sql语句写法,存储过程的调用、web服务的调用等;
6.1 AspPbNetLib.pbd类库介绍
AspPbNetLib.Pbd包含的对象有:pbnitransction Sqlca 全局事物对象,处理远程调用与数据处理;pbnidwimplhelp DwHelp 全局操作对象,提供数据窗口查询、更新和动态sql调用,存储过程调用,web服务动态调用等功能;pbnihashtable ht 局部对象,主要为DwHelp的操作类提供各类参数封装传参的对象封装;
6.1.1 PbniTransction 对象介绍
Pbnitransction是一个全局事物对象,在采用AspPb.Net框架开发的时候要将该对象设置为SQLCA的创建对象,如下图(必须设置,否则框架不能正常执行):
6.1.2 PbniHashTable 对象介绍
pbnihashtable ht 局部对象,主要为DwHelp的操作类提供各类参数封装传参的对象封装;
使用方法介绍:
//创建一个参数封装对象
PbniHashTable ht
//进行封装赋值
ht. SetItemString (string 参数名称, string 参数值) //字符串
ht. SetItemNumber (string 参数名称, Long 参数值) //数字
ht. SetItemNumber (string 参数名称, Int 参数值) //数字
ht. SetItemNumber (string 参数名称, Dec 参数值) //数字
ht. SetItemDate (string 参数名称, date 参数值) //日期
ht. SetItemDate (string 参数名称, datetime 参数值) //日期
//存储过程用与返回值的参数赋值字符串
ht.SetItemString(string 参数名称, string 参数值,string ht.#out)
6.1.3 PbniDwimplHelp 对象介绍
pbnidwimplhelp DwHelp 全局操作对象,提供数据窗口查询、更新和动态sql调用,存储过程调用,web服务动态调用等功能;
使用方法介绍:
//定义全局操作对象
pbnidwimplhelp DwHelp //必须定义为全局对象,否则框架不能正确执行
6.1.3.1 设置要查询的数据窗口对象到DwHelp服务对象
DwHelp.SetRetrieve(DataWindow 数据窗口)
6.1.3.2 对数据窗口执行查询
DwHelp.Retrieve() //前天必须执行SeTRetrieve对数据窗口进行了设置
6.1.3.3 更新数据窗口
//该函数提供了对一个或者多个数据窗口的更新功能,如果设置了多个数//据窗口,那么他们将会被强制设置为同一个事物,全部更新成功才会//Commit,如果有一个数据窗口更新失败,将全部Rollback;
DwHelp.Update(DataWindow 数据窗口,Datawindow 数据窗口,……)
6.1.3.4 执行Select语句返回datastore
//该函数可以实现用户自定义封装的select语句提交到后台,后台进行数据//查询返回DataStore对象,用户可以根据返回的对象进行数据取值操作等;
DwHelp.ExecSelect(string select语句,dataStore 返回的数据存储)
6.1.3.5 读取Blob对象
//该函数通过用户自定义的select语句,读取数据库里的Blob对象到客户端
DwHelp.QueryBlob(string sql语句,pbnihashtable 参数对象,blob 返回blob对象);
6.1.3.6 执行Inset、update、delete语句
//该函数执行用户封装的insert、update、delete等sql语句
DwHelp.ExecNoSelect(string sql语句,pbnihashtable 参数对象) 返回值为字符串,代表执行的行数和错误信息
6.1.3.7 动态调用web服务
//该函数实现对web服务的调用
DwHelp.ExecWebService(string 服务地址,string 函数名称,pbnihashtable 参数对象)
6.1.3.8 上传文件
//上传后文件保存在iis服务目录的fb/upload的目录下,注意文件不能大于//4M
DwHelp.UpLoadFile(string 上传的文件路径,string 上传后的文件名称)
6.2 Demo应用程序主程序配置说明
表2 AspPb.Net前台客户端Demo说明
名称 说明
1、确保pbnitransction已经被定义为sqlca,具体参见类库说明
//定义全局变量服务对象(dwnidwimplhelp在asppbnetlib.pbd中包含)
pbnidwimplhelp dwhelp
2、open事件
2、事物对象pbnitransction Sqlca对象,该对象被重新构建了,基本上负责多层中远程调用的功能;
3、应用对象介绍 pbnidwimplhelp dwhelp 提供了客户端与服务端交互的函数,基本上与后台交互的工作都将由改对象实现;
6.3 数据窗口服务例程
主要功能:
查询 retrieve
更新 update
6.3.1 数据窗口查询功能
说明:实现对数据窗口的retrieve功能;
无参数例程:查询dw_1的数据;
dwhelp.setRetrieve(dw_1) //绑定数据窗口为当前Retrieve对象
dwhelp.Retrieve() //执行查询Dw_1的数据到窗口中去
多参数查询例子(数据窗口里为两个日期类型和一个字符类型);
dwhelp.setretrieve(dw_1)
dwhelp.retrieve(datetime(date(em_1.text),time("00:00:00")),datetime(date(em_2.text),time("23:59:59")),"%")
6.3.2 数据窗口保存更新功能
说明:实现数据窗口的数据更新功能;
单窗口更新例程;
if dwhelp.update(dw_1) = 1 then
messagebox("提示","更新成功")
else
messagebox("提示","更新失败")
end if
多窗口同一个事务更新例程,如果有一个失败将会全部回滚;
if dwhelp.update(dw_1,dw_2,dw_3) = 1 then
messagebox("提示","更新成功")
else
messagebox("提示","更新失败")
end if
6.4 动态Sql语句写法及存储过程调用
实现动态书写select语句和insert、delete、update语句,实现存储过程的调用等功能;
6.4.1 Insert语句写法介绍(可以更新blob类型字段)
6.4.2 Update语句写法介绍 (可以更新blob类型字段)
6.4.3 Delete语句写法介绍
6.4.4 Select语句写法介绍 ,数据返回为datastore
6.4.5 读取BLOB字段
6.4.6 存储过程调用
6.5 动态Web服务的调用
6.6 文件上传功能介绍
if dwhelp.uploadfile(上传的文件路径,上传后的文件名称) = -1 then
messagebox("提示","上传文件失败,请稍后再试!")
destroy lds_tongzhiid
ChangeDirectory ( is_currfileml )
return 1
end if
7 AspPb.Net开发Demo界面预览