第三部分用PowerBuilder开发数据库应用系统第一章 P owerBuilder简介●介绍PB的特点;●应用程序的组成,开发步骤;●PB开发环境●一个应用程序实例一、 PB的特点1.什么是PB?●PB是一个图形界面的,面向对象的数据库应用系统开发工具;●能够开发功能强大的,运行在多个平台的,能够操作多个数据库的应用系统;●可以开发客户/服务器、分布式、Internet应用系统。
(1) 客户/服务器结构:(双层)●这种结构的核心是当前端用户(客户工作站)需要后台服务器的服务时,仅发出请求;而服务器接收请求后,执行相应的功能,并把满足条件的那部分数据反馈给前台客户端;●数据库服务器上的DBMS集中负责管理数据库服务器上的数据和资源,它向客户端提供一个开放的使用环境,客户端的用户通过数据库接口和SQL语言访问数据库;也就是说,它只要能通过网络协议和数据库接口程序连接到服务器,就可以对数据库进行访问;●在此结构中,应用程序和应用逻辑可以根据需要划分在服务器或客户工作站;(2) 多层客户/服务器结构:(分布式结构)●有三个逻辑层,客户层是面向用户服务的,把数据和应用呈现给用户的逻辑,在客户端实现,中间层是面向商业规则的,在应用服务器上实现,服务器层是面向数据服务的,在数据库服务器上实现;●强调组件开发,相对独立的组建模块安排在服务器上,供所有的客户端应用程序访问;(3) Internet应用系统●处理分三层,类似于多层客户/服务器结构;●商务和表现服务驻留在Web服务器上,而客户使用简单的浏览器,这种结构可支持任何配有浏览器的客户机。
2.提供强有力的开发环境●用它来建立用户容易使用的各种应用程序;●开发人员还可以通过PB修改他们的数据库;●PB为应用的开发提供了全面的综合性的支持,概括如下:(1) 事件驱动的应用程序●PB的应用程序是事件驱动的,即用户通过各种动作控制应用程序的流程;●用户可以通过编写脚本来说明当事件触发时,要完成的处理过程;●用户通过PB创建的窗口、控件和其它对象都是一个预定义的事件集合;●通常情况下,预定义的事件即是用户所需的,然而,有些情况下可能需要定义自己的事件;(2) 功能强大的PowerScript语言●在PB中,所有应用处理逻辑都是用PowerScript语言编写的,它是PB的专用程序设计语言,用它编写的程序通常被称为脚本;●脚本是由PB的命令、函数和语句等组成,脚本的执行是由事件触发的;●PB提供了丰富的内置函数,利用它们可以对应用程序的各种对象和控件进行处理,用户还可以自定义函数;(3) 面向对象的编程●在PB中创建的每一个菜单或窗口都是一个称作“对象”的独立模块;●PB的应用程序是由这样的对象“搭建”起来的,每个对象都有特定的特征和行为(属性,事件和函数);●PB是面向对象的开发工具,在对象中对继承,封装和多态性等面向对象的程序设计技术提供了全面的支持;●开发人员可以利用这些技术有效地利用创建的每一个对象,使应用程序具有可重用性,可扩展性;(4) 支持交叉平台开发●在Windows下利用PB开发的应用程序,可以将该应用程序分发到UNIX平台上运行,反之亦可;(5) 与数据库的连接性●PB提供了与底层数据库系统紧密的连接;●PB支持不同的RDBMS,可以访问多个数据库的信息显示在一个窗口内;●开发人员可以利用内置的高性能数据库引擎Sybase SQL Anywhere 生成脱离服务器运行的应用,在此之上开发的数据库应用程序只需简单地改变数据库接口就可以方便地运行于指定的数据库上●PB存取数据库的方式有两种:ODBC接口,专用的直接与数据库相连的接口,JDBC二、 理解PowerBuilder对象●PB包含大量对象:窗口,菜单,数据窗口,事务对象,消息对象,错误对象等;●对象的三个特性:(1) 属性:用来描述对象的特性●查看,修改对象的属性:定义对象时:Properties窗口在程序代码中:对象名.属性=属性值(2) 对象函数(方法):用来在程序中操纵对象●对象函数封装在对象内部,实现步骤,细节用户既看不见,也不能●大多数对象函数都有返回值,用来指示函数的执行情况;对象函数的引用方法:对象名.函数名(参数,…..) (3) 事件:指可能发生在对象上的事情●在Windows系统中,用户的所有操作都由系统自动转化为某个事件;●为了简化应用程序的开发,大多数的PB对象都预先定义了一组事件;●如果想对某个事件作出反应,那么需要编写该事件的事件处理程序;●除了用户操作能产生事件外,程序本身也能够主动地触发事件;三、 PB的开发方法●PB应用程序和其它Windows应用程序一样,由两大部分组成:用户界面:用户通过窗口,菜单,窗口上的各种控件等界面元素操作应用程序;应用处理逻辑:通过事件和函数中的程序代码来实现的;●传统开发工具考虑的是程序流,开发思路是控制流;●PB考虑的是对象,开发思路是“事件驱动”●PB开发的实质:定义对象和控件及其属性;定义对象和控件上某个事件发生时要执行的程序;●PB开发流程:其中,建立应用对象需要在应用开发的一开始就要完成;其它步骤可按任意次序进行;四、 PB应用程序●PB应用程序是相互关联的对象集合体,介绍主要对象类型:(1) 应用对象●是整个应用程序的入口点,它包含特定应用程序中的所有其它对象;●应用程序对象定义应用程序级的行为,例如指定用于存储应用程序中各种对象的PB库;●当用户启动应用程序时,会触发应用对象中的一个OPEN事件,当用户终止一个应用程序时,会触发应用对象中的一个CLOSE事件;(2) 窗口对象●窗口是用户和PB应用程序之间的主要接口;●窗口可以显示信息,接收用户信息,以便响应用户鼠标或键盘的操作;●窗口对象代表PB应用程序的主要成分,其它对象(菜单,数据窗口及用户对象)只有加到窗口上,才能加到一个应用程序中;●一个窗口通常有以下几部分组成:属性:定义窗口的外观和行为事件:由用户动作触发控件:位于窗口中(3) 数据窗口●数据窗口是一个用来检索和操纵来自一个关系型数据库或其它数据源中数据的对象;●数据窗口对象是独立生成的对象;●为了把数据窗口对象与一个窗口对象相关联,必须在窗口上放置一个数据窗口控件,然后将一个数据窗口对象加到该数据窗口控件上;(4) 菜单●菜单是用户可在当前活动的窗口中选择的命令或选项的列表;●菜单中的菜单项通常是与命令相关的;●PB中定义的菜单,其工作完全与标准操作环境中的菜单是一样的;(5) 用户对象●如果发现在重复地使用程序的某一特性时,就应定义一个用户对象;●用户对象可以定义一次,而后多次使用;●可视用户对象:具有某一致行为的可重复使用的控件或控件集合;●类用户对象:不具有可视成分的,可重复使用的处理模块,通常使用类对象定义商业规则和其它完成某些功能的处理过程;(6) 全局函数●对象级函数:为某一个特定类型的窗口,菜单而定义的;●全局函数:作为一个独立的对象存储,用来完成一些通用的处理;(7) 查询●是以一个名字存储的SQL语句,它可以作为数据窗口对象中的数据●被编码后可以重复使用;(8) 结构●一个或多个相同的或不同的数据类型的相关变量构成的汇集,以单一名称出现;对象级结构;全局结构;(9) 库●存储利用PB建立的对象的地方;●与应用程序有关的对象和成分存放在PB库中,对应.PBL文件;●当建立一个应用程序时,PB要求建立一个库;●当运行应用程序时,PB会从库中检索对象;●一个应用程序可以使用多个库;(10)工程●创建工程对象,可以把应用程序中的所有对象都包含到独立的可执行文件中,编译成一个可执行文件;五、 连接数据库●PB是专为数据库系统设计的前台应用开发工具,可支持绝大多数目前广泛使用的RDBMS;●PB通过各种不同的数据库接口软件连接到不同的数据库上;●PB到数据库的接口软件:通用的ODBC接口软件;专用的数据库接口软件;(1) ODBC:Open Database Connectivity 开放式数据库连接●微软公司提出的允许应用程序使用SQL语言查询数据库的标准;●该接口许可最高的互操作性,即单一的应用程序可以访问不同的DBMS;●允许开发人员开发,编译和发布应用程序,而不必针对特定的DBMS,随后用户可通过加载连接到不同数据库的驱动程序,建立应用程序与所选择的数据库系统的连接;●ODBC体系结构由四个部分组成:应用程序,驱动程序管理器,驱动程序和数据源;(2) 通过专用接口连接PB到各种数据库●是为某种数据库设计的接口软件;●通过ODBC连接到数据库的方式运行速度较慢;(3) 与数据库的连接:PB在设计或运行应用程序时,都要连接到数据库●通过ODBC可以和本地小型数据库或后台的各种大型数据库进行连接;第一步:创建数据源第二步:配置数据库连接参数(建立数据库配置文件)配置文件:命名了一组连接到特定数据源或数据库的参数,该参数存放在PB.INI中;设置好的数据库配置文件的名称将出现在相应的数据库驱动程序的名称下;在Preview选项卡下查看连接的数据库的参数设置语句,并且可以将这些语句方便地拷贝和粘贴到相应的应用程序中;六、 PB的集成开发环境●PB给开发人员提供一个集成环境,应用的各种成分,包括窗口,菜单,应用逻辑,数据库存取,数据库声称,图形,报表等全能在PB内开发;●PB包括强大的编译能力,集成调试,测试功能;(1) 画笔(PAINTER)在PB中,所有对象的创建和修改都是由Painter完成的;●打开画笔:新建对象继承或打开已有对象时;在库画笔中双击需编辑的对象也可打开编辑此对象的画笔;(2) 调整画笔中的各个视图●打开视图:通过画笔中的View菜单●视图的组成:窗格句柄,标题栏,图钉按钮●调整视图:移动窗格的位置,将几个视图合并到一个窗格中,每个视图对应窗格的一个页;●保存调整的视图;●恢复系统的缺省状态;●关闭视图:●常用视图:布局,属性,脚本,事件列表,函数列表,控件列表,结构列表;(3) PB工具条PowerBar:第一级工具条,用于打开画笔和工具;PainterBar:用于在当前画笔中完成特定的任务,不同的画笔拥有不同的PainterBarStyleBar:用于改变窗口,数据窗口,可视用户对象中当前对象的文本属性;(4) 新增辅助开发功能:●TO-DO LIST用法:显示当前应用中的一系列开发任务,可直接切换到某项任务的开发现场;●自定义菜单快捷键:可以根据自己的习惯为系统菜单项定义键盘快捷键;七、 第一个PB应用程序●通过一个实例介绍PB应用程序的开发步骤;●理解PB建立一个应用程序的过程和方法;1.应用程序开发实例(1) 建立应用对象;(2) 连接数据库;(3) 创建窗口对象;(4) 数据窗口对象;(5) 窗口上增加数据窗口控件;(6) 增加排序功能:控件,排序函数,事件代码2.如何利用数据窗口显示数据?(1) 建立一个数据窗口对象;(2) 建立一个窗口,放置数据窗口控件;(3) 指定数据窗口对象到窗口上的数据窗口控件;(4) 将用连接的数据库的信息指定给事务对象(SQLCA)(5) 用CONNECT命令连接数据库和事务对象;(6) 利用SetTransObject()连接数据窗口与事务对象;(7) 利用Retrieve()从数据库读取数据;3.事务对象●事务对象是用来联系应用程序和数据库的;●它的作用是为PB的应用程序和数据库提供一个通信区;●用户若要对数据库进行访问首先要创建一个事务对象,并与相应的数据库和数据窗口连接,这样用户才可以根据自己的需要对数据库进行操作;●用户可以根据需要使用默认对象SQLCA或者自定义事务对象;●SQLCA(SQL Comunication Area):PB提供给用户的全局事务对象,也是最常用的事务对象;●PB设置它为默认的事务对象,在用户没有选择其它事务对象时,系统会认为选用的是SQLCA;●事务对象共有15个属性,其中10个属性用于连接数据库;5个属性用于返回信息;●返回信息的属性:SQLCode:指示SQL的操作失败或成功0:无错误-1:有错误100:没有错误但无数据SQLDBCode:返回DBMS错误码,大多数厂商设定0:成功100:没有找到数据负数:错误事务对象和数据库连接的代码示例:// Profile studentSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=student'" //设置数据库连接参数 CONNECT USING SQLCA;//试图连接数据库If sqlca.sqlcode=0 thenOpen(w_main)ElseMessagebox(“警告”,”数据库连接错误”)Endif。