资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第1章 PowerBuilder概述,PowerBuilder简称PB,是PowerBuilder soft公司推出的数据开发工具。PowerBuilder采用了面向对象编程技术,可视化、图形化和自动报表技术突出,它创建了一个具有独特优点的开发编程语言,可以使应用程序开发效率高、成本低、质量好。,PowerBuilder是高效开发计算机网络应用软件的工具,经常设计客户机/服务器架构的应用,也可以设计B/S结构的应用。PowerBuilder把开发工具与企业服务器紧密集成,用户不需要离开PowerBuilder集成环境,就可以开发出应用服务器所需的各种组件,或者编写网页和代码,。,1.1 PowerBuilder特色,PowerBuilder是一种数据库开发工具,比一般开发工具的开发效率强得多。,数据窗口,事件驱动的应用程序,4L语言,面向对象的编程,跨平台开发,开放的数据库连接,分布式开发,1.2 PowerBuilder开发环境,PowerBuilder 10.0安装完毕后,会在“开始”级联菜单中生成程序选项。单击“开始/程序/Sybase/PowerBuilder 10.0/PowerBuilder 10.0”菜单项,即可启动。,要利用PowerBuilder进行应用程序开发,首先必须熟悉PowerBuilder的开发环境,也就是说,必须对PowerBuilder的界面及其构成、操作方法、开发流程等进行深入的了解。,1.2.1 PowerBuilder界面,当第一次启动PowerBuilder 10.0时,会打开“Welcome to PowerBuilder”对话框,其中列出了提供操作的选项。具体如下所示:,Create a new workspace and a new target,Create a new workspace and add an existing target,Create just a new workspace,Open an existing workspace,Close this dialog,PowerBuilder主窗口的最上方是标题栏,下面是菜单栏,菜单栏的下面是PowerBuilder的主工具栏。主窗口的左边是系统树窗口和剪贴窗口,下方是输出窗口。,1.2.2 PowerBuilder菜单,PowerBuilder的所有开发工作都可以通过选择菜单项进行,PowerBuilder的菜单包“File”、“Run”、“Tools”、“Window”、“Help”5菜单项及其下拉菜单。,“File”菜单。“File”菜单下包括“New”、“Inherit”、“Open”、“Run/Preview”等10个菜单项。,“Run”菜单。“Run”下拉菜单包括“Incremental Build Workspace”、“Full Build Workspace”、“Deploy Workspace”、“Debug”等11个菜单项。,“Tools”菜单。“Tools”下拉菜单包括“Toolbars”、“Keyboard Shortcuts”、“System Options”、“To Do List”、“Browse”等10个菜单项。,“Window”菜单。“Window”下拉菜单包括“Tile Vertical”、“Tile Horizontal”、“Layer”、等9个菜单项。,“Help”菜单。“Help”下拉菜单用来提供系统帮助功能,它的下拉菜单包括“Contents”、“Welcome to PowerBuilder 9.0”、“Sybase Web Site”等6个菜单项。,1.2.3 PowerBuilder工具栏,在菜单栏下面显示的是PowerBuilder的,主工具栏,利用工具栏可以执行建立新的对,象和应用、打开已经存在的对象、调试和运,行当前应用等操作。,1.2.4系统树(System Tree),系统树列出了当前开发的系统的所有可用资源,它,可以让开发者获取各类对象的信息,还可以实时拖动,对象到画板视图中进行编辑。,“Workspace”选项卡,列出当前工作区及当前工作区中的所有目标。,“Page”选项卡,显示“Microsoft Internet Explorer”对象模型以及在HTML编辑器中当前页的层次结构。,“Language”选项卡,列出了对Web目标有效的语言元素。,“Web target”选项卡,显示了客户端和服务器端脚本语言的语句和实例对象。,1.3系统开发基本概念,在开始使用PowerBuilder进行应用开发之前,首先介绍PowerBuilder的有关概念和术语。,工作区。在PowerBuilder中所有的程序开发工作都是在工作区下进行的。,画板(Painter)和编辑器(Editor)。画板是用来编辑对象的编辑器;对于每一个画板,都有一个源码编辑器,可以使用这个文件编辑器直接编辑对象的源码。,事件(Event)和脚本(Script)。PowerBuilder开发的应用程序是基于事件驱动的,可以在该事件中编写代码。,属性(Properties)。所有对象和控件都有自己的属性,例如宽度、高度等。,1.4 PowerBuilder的安装,PowerBuilder的安装十分简单,只需要根据安装,向导的提示,逐步完成操作即可完成。,把PowerBuilder安装光盘放入光盘驱动器中,设置用户信息,输入用户名以及公司名称,选择安装文件夹,选择安装PowerBuilder 套件中的组件,第2章 PowerBuilder程序设计基础,PowerBuilder具有可视化、高效编程的特点,可以编写GUI界面的应用程序。,PowerBuilder开发环境本身就是一个良好的GUI界面,为程序开发者提供了方便。,2.1 工作区与应用对象设计,PowerBuilder可以建立多个工作区,但是在同,一时刻只能有一个工作区被打开。建立了工作区,后,可以建立一个或多个目标对象,或者将已存在,的目标添加到当前工作区中。,添加已存在的目标到当前工作区的步骤如下:,右击工作区名称,选择“Add Target”菜单项,选择要打开的目标文件名(.pbt),设置目标的属性,设置工作区的属性,2.2 画板布局,默认状态下,系统树窗格和剪贴窗格显示在,PowerBuilder主窗口的左边,输出窗口显示在,PowerBuilder主窗口的底部。但也可以根据需要对,画板布局进行调整。具体步骤如下:,选择“Tools/System Options”菜单项,选择“General”选项卡,清除“Horizontal Dock Windows Dominate”复选框。,单击“OK”按钮。,2.3 定制工具栏,PowerBuilder提供的工具栏由3种,主工具栏,(称为Power工具栏)、画板工具栏和格式工具栏。,并且对工具栏可以实施以下操作:,下拉工具栏,工具栏的显示属性设置,移动工具栏,定制工具栏,重建工具栏,2.4 PowerBuilder画板,在PowerBuilder中,建立和编辑对象的地方称为画,板(Painter),例如窗口画板、菜单画板、数据库画板,等。在画板中可以设置对象的各种属性,为对象的事,件编写脚本,定义变量、函数等。,大多数用来编辑PowerBuilder对象的画板具有以下,特征:带有多个视图(View)、具有撤消(Undo)/重做,(Redo)功能,可以采用拖放操作来编辑脚本或复制对,象,支持历史记录恢复,可以按照任务列表(To Do,List)上的链接项跳转到指定位置,支持存盘提醒功,能。,2.4.1 布局画板,视图是画板内用来执行特定功能的地方。主要视图如下:,布局(Layout)视图,显示对象及其控件的实际外观,属性(Properties)视图,显示和设置对象或者当前选中的控件的属性值,脚本(Script)编辑视图,用来编辑事件和函数的脚本,控件列表(Control List)视图,列出对象中的可视控件,事件列表(Event List)视图,显示了对象或控件的所有事件,非可视化对象列表(Non-Visual Object List)视图,列出已经添加到当前对象中的非可视化用户对象,函数列表(Function List)视图,列出了PowerBuilder内置的函数以及对象级的自定义函数,2.4.2 快捷键,PowerBuilder菜单的大多数菜单项都设置有快捷,键,通过这些快捷键可以快速执行菜单项的,功能。PowerBuilder允许定制菜单项的快捷键。,设置菜单项快捷键的步骤如下:,选择“Tools/Keyboard Shorts”菜单项,选择一个设有快捷键的菜单项或者带有默认快捷键的菜单项,按下快捷键,单击“OK”按钮即可,移去一个已定义的菜单项快捷键,操作步骤如下:,选择“Tools/Keyboard Shorts”菜单项,选择要移去快捷键的菜单项,单击“Remove”按钮,单击“OK”按钮,重置快捷键方法如下:,选择“Tools/Keyboard Shorts”菜单项,单击“Reset”按钮,在确认对话框中单击相应的按钮,单击“OK”按钮,2.4.3 设计字体,PowerBuilder启动后,各对象或画板都会以系统默认的字体显示,但也可根据需要,重新设计字体。,PowerBuilder 可以完成对以下字体的设计:,数据表、标题和标签中的字体属性,用户对象、窗口以及数据窗口画板内的字体属性,应用、菜单、库画板、浏览器和帮助的字体属性,函数画板、脚本视图、数据库画板内的交互SQL视图、源码编辑器、文件编辑器、调试窗口的字体属性,2.4.4 定制颜色,PowerBuilder提供了数十种预定义颜色,同时也允许开发者定制自己的颜色。,定制颜色的步骤如下:,打开画板,选择“Design/Custom Colors”菜单项,调整基本颜色的属性或者直接输入确切的颜色数值,单击“添加到自定义颜色”按钮即可,根据需要再定制其它颜色,单击“确定”按钮即可,2.4.5 输出窗口,输出窗口用来显示各种操作的有关信息,例如,迁移(Migration)、构建(Build)、调度(Deployment)、编译项目、保存对象、检索等。,单击Power工具栏中的“Output Window”按钮或者,选择“Window/Output”菜单项可以隐藏或显示输出窗,口。,初次启动PowerBuilder时,工作环境会按照默认的设置显示,不过这个设置是可以改变的。,设置启动PowerBuilder时的有关参数,其步骤如下:,选择“Tools/System Options”菜单项,从中选择“Workspaces”选项卡,根据不同的要求设置有关属性,2.5 设置PowerBuilder环境参数,2.6 使用帮助,PowerBuilder提供的联机帮助功能有两类:,HTML帮助文件包含大量的帮助信息,分别是“HTML帮助用户手册”、“应用开发技术”、“数据窗口程序员手册”、“数据库连接”以及为PowerBuilder企业级用户准备的“使用Web和JSP目标”。,Windows帮助包含以下内容:PowerBuilder当前版本的新特性,上下文敏感帮助,对象控件、数据窗口、Power Script的参考信息,以及描述语法工具、迁移助手等工具的帮助信息。,2.7 PowerBuilder开发典型案例,最新版本的PowerBuilder除了可以开发传统的客户,机/服务器应用之外,还可以方便地开发出多层应用,(分布式应用)和Web应用。使用PowerBuilder开发应,用程序的步骤如下:,建立工作区,建立应用,建立窗口,创建数据窗口对象,测试和调试与应用,编译应用,2.8 数据库连接,数据库(Database,DB)是按一定组织方式存储在,计算机存储器中的相互关联的数据集合。,数据库的应用开发,包括数据库的创建、管理、,连接和ODBC的工作原理,以及建立数据表、建立主,键和数据修改等。,数据库管理系统(DBMS)是一个管理数据库的软件,系统,为用户提供了描述数据库、操纵数据库和维护,数据库的方法和命令,并且能自动控制数据库的数据,完整性以及安全性。,2.8.1 创建数据库,数据库系统(DBS)是一个具有管理数据库功能的计,算机系统,包括数据库、数据库管理系统、应用软件,和数据库管理人员(DBA)等几部分。,【,例2.2,】,在PowerBuilder集成环境中创建数据库。,2.8.2 访问数据库,在访问数据库之前,首先要建立与数据库的连接。PowerBuilder与数据库的连接建立在驱动程序之上。对于Sybase、Oracle这样的大型数据库系统,PowerBuilder提供访问效率高的专用数据库接口;而对于小型数据库和支持ODBC接口的数据库,PowerBuilder提供了ODBC接口。,PowerBuilder连接数据库的步骤是:确定连接数据库的接口(即专用接口还是ODBC)、建立数据源,建立引导名、连接数据库。,【,例2.3,】,给ASA8类型的数据库定义数据源。,【例2.4】建立数据库引导名。,2.9 简单应用实例,PowerBuilder可以高效率地编制一个具有数据的,“插、删、改、打印和备份”功能的小程序。首先创,建一个简单数据库:“c:mydb”,然后,创建工作空,间:“WK1”和应用:“aa”,再新建窗口:“w1”和数据,窗口对象:“dd”,最后,给窗口中的各个控件编写,脚本。,【,例2.5,】,一个具有简单“插、删、改、打印和备份”功能的应用程序。,第三章 数据库画板,数据库(表)及其主键、外键、索引的建立和定义是进行实际开发工作的第一步,PowerBuilder的开发工作几乎都是围绕数据库展开的。在建立数据库(表)之前,开发人员应进行详细的系统分析,其中包括该建哪些表和表的字段及数据类型、宽度以及主键、外键、索引的规划等。,在数据库画板内,可以执行数据库的大部分数据管理功能,主要包括以下内容:建立数据表、主键、外键、索引列、修改属性、数据视图和执行交互式SQL命令等。,3.1 数据表操作,数据库中的数据一般都存储在表中,数据表(Table)是一个实体,有唯一的名称,表是由行与列组成的,每一行都是对这种实体完整性的描述。,数据表是数据存储的基本单元,它可以看作一组行和列编号的数据集合,在关系数据表中,行被称为记录,而列则被称为字段。数据表中常用概念如下:表、字段、记录、主键、关系。,3.1.1 创建数据库和数据库表,PowerBuilder自带一个小型关系型数据库管理系统“Adaptive Server Anywhere”,支持多种平台应用。,【例3.1】创建数据表,存储表3.1中的信息,数据库表名定义为:“boy”。,3.1.2 数据库画板工具栏,数据库画板工具栏有“PainterBar1”、“PainterBar2”和“PainterBar3”三个,其中“PainterBar1”主要是针对于数据库表进行操作,主要是:Connect、Disconnect、Save、Create Table、Drop Object等。,“PainterBar2”主要是对“Interactive SQL”交互式SQL语句进行操作,主要是:Cut、Copy、Paste、Paste SQL、Select ALL、Comment等。,“PainterBar3”主要是针对记录进行操作,主要是:Retrieve、Save Changes、Insert Row、First、Next等。,3.1.3 Layout视图窗格,在数据库画板中,用鼠标右键单击表,在弹出的快捷菜单中选择“Add to Layout”子菜单项,则PB系统将把该表以图形的方式直观地显示在“Layout object”视图中。“Layout”视图中列出了数据表、列、主键、索引和外键等信息,鼠标右击其中任何一个对象,并在弹出的快捷菜单中选择“Properties”菜单项,都可对此对象进行编辑。,3.2 数据表设计,在数据库画板中,有多种操作方法可以对数据库的表进行修改与维护,建立数据表的另一种方法是:右击数据库资源“Tree”中的“Tables”项,并在弹出的快捷菜单中选择“New Tables.”菜单项。,3.2.1 数据表属性窗格,在数据库画板对象的“Objects”视图中,鼠标右击数据表,在弹出的快捷菜单中选“Properties”菜单项,可打开表的属性视图窗格。,在表的属性视图中,可以设定此数据表的相关属性,共有四个标签页:Data Font属性、General属性、Heading Font属性、Label Font。,设置完成后,可以单击工具栏中的“Save”图标保存修改。,3.2.2 主键、外键和索引,表的主键(Primary Key)是能够唯一标识每一行数据的一列或若干列的集合。定义表的主键可以保证表的引用完整性,如果数据库管理系统(DBMS)支持主键(绝大多数DBMS都具备此项功能),就应该为每个数据表定义各自的主键。,外键(Foreign Key)是指表中的一个或多个列与其它表中的主键建立的对应关系,在关系数据库中,可以利用外键连接多个表,保证数据库的参照完整性。,外键的建立步骤如下:,对应规则有三类,它们的含义分别是:,Disallow if Dependent Rows Exist(RESTRICT),Delete any Dependent Rows()CASCADE,Set Dependent Columns to NULL(SET NULL),索引的创建与主键类似。,3.2.3 列属性维护,在定义数据表时,同时也定义了列的类型、初值等基本属性。在数据库画板中还可以定义列的其它属性,包括显示格式、编辑风格、有效性规则等。列的属性定义方式与表的属性类似,该属性视图共有五个标签页:General、Headers、Display、Validation、Edit Style。,3.2.4 扩展属性,列的“Display Formats”、“Edit Styles”、“Validation Rules”属性在表的属性窗口中只能引用而不能对其定义,在数据库画板中选择“View/Extended Attributes”菜单项,将打开扩展属性(Extended Attributes)视图,在此视图中可以定义列的显示格式、编辑风格和验证规则。,自定义显示格式(Display Formats),自定义编辑样式(Edit Style),自定义有效性规则(Validation Rules),3.3 数据表数据维护,当定义了数据库的表后,在PowerBuilder开发环境中也能够方便地输入数据。数据库画板提供了如下三种界面来编辑数据,分别为网格格式、列表格式和自由格式,它们的差别仅在于显示数据方式的不同。,3.3.1 数据录入,以表“boy”为例,在对象视图中选中表“boy”,单击“PainterBar1”工具栏的“Data manipulation grid”工具按钮,以网格状来显示数据。单击“PainterBar3”工具栏的“Insert Row”工具按钮,插入一条记录,单击“Delete Row”工具按钮删除当前记录,单击工具栏“PainterBar3”中的“Save Changes”工具按钮保存数据。,3.3.2 数据排序与过滤,当希望以某种顺序查看数据时,可以指定数据的排序方式:首先进入数据表数据的编辑界面,然后选择“Rows/Sort”菜单项,弹出“Specify Sort Columns”对话框,用鼠标左键按住左边的“Source Data”中的列并拖动到右边Columns列表框中,然后选择排序方式。,当浏览部分数据时,可以指定过滤条件对表中数据进行筛选。步骤如下:,首先将焦点切换到“Result”视图,然后选择“Rows/Filter”菜单项,弹出“Specify Filter”对话框。,输入过滤条件。,单击“Verify”按钮验证过滤表达式是否正确。,单击“OK”按钮关闭对话框,满足条件的数据被显示出来。,3.3.3 建立视图,视图是数据库应用系统中十分重要的组成部分,通过视图可以进一步简化应用程序编程工作,使其更加简洁、灵活、方便、有效。视图是一种非常特殊的虚拟表,它可以象表一样地被访问和使用,但视图本身并不是真正的表,并不存在视图这种物理结构,它的数据只是来自一个或多个数据库中的表或视图。,3.3.4数据导入与导出,在开发环境中可以将数据库表中的数据导出到文件中。也可以将保存在文本文件或“DBF”库文件中的数据通过数据库画板导入到数据库中。,导出数据,导入数据,3.3.5 设置数据显示格式,在数据库画板中,设置列的显示格式的步骤如下:,在数据库画板的对象(Objects)视图下,展开树视图,显示某个表的列清单。,鼠标右击要指定显示格式的列,在弹出的快捷菜单中选择“Properties”菜单项,在列(Columns)视图中选择“Display”标签页。,在“Display Format”下拉列表框中选一个显示格式。,单击画板工具栏上的“Save”按钮。,定义了某个显示格式后,可以根据需要对它进行修改。操作步骤如下:,打开数据库画板。,如果扩展属性(Extended Attributes)视图没有显示,选择“View/Extended Attributes”菜单项打开扩展属性视图,否则单击该视图的标签页。,在扩展属性视图下,打开显示格式列表。,鼠标右击要修改的显示格式名称,在弹出的快捷菜单中选择“Properties”菜单项。,在显示格式视图中修改已定义的显示格式。,3.4 SQL命令,SQL,命令是数据库发布命令的交互标准,适用于各种公开发行的数据库系统,,PowerBuilder,的数据库画板支持直接使用SQL命令进行数据库表的维护。,3.4.1 SQL命令类型,SQL(Structured Query Language)称为结构化查询语言,主要功能就是同各种数据库建立联系,用来执行各种各样的操作,例如更新数据库表中的数据、从数据库表中提取数据等。,SQL语句有很多,功能齐全,可以分为四大类:,数据定义,数据查询,数据更新,数据控制,3.4.2 SQL数据表命令,SQL命令可以在数据库画板中执行,也可以在Sybase Central或数据库管理工具“Interactive SQL”中执行。,定义类的,SQL命令(CREATE、DROP、ALTER等语句)可以对数据库、数据表、索引、视图和存储过程等进行操作。这些命令一般都通过数据库画板来完成。,【例3.2】,通过SQL语句创建数据库,【例3.3】,创建个人信息表(person),【例3.4】,删除表:person,【例3.5】,修改表person的表结构,在表中新增一列备注(Notes)。,【例3.6】,修改表Boy的表结构,在表中新增一列部门编号(dp)。,【例3.7】,查询表boy。,【例3.8】,在“boy”表中取id=”00101”记录的工资数值,存入实型变量X中。,【例3.9】,查看“boy”中的所有数据,并要求按工资升序排列。,【例3.10】,查找“boy”表中工资大于2000元的员工记录。,【例3.11】,查找“boy”表中工资大于2000元或性别为“女”的员工记录。,【例3.12】,查找dpt表中所在部门为01、03和05的记录。,【例3.13】,查询会计系(01)的所有人员。,【例3.14】,查找“王昭”所在部门所有人员的信息。,【例3.15】,查询目前没有人员的部门。,【例3.16】,查找姓“王”的人员的信息。,【例3.17】,统计实际总人数。,【例3.18】,统计01部门的平均工资。,【例3.19】,统计各部门的实际总人数。,3.4.4 数据更新语句,SQL命令经常通过Insert、Delete和Update命令对数据表进行数据修改。在数据修改过程中必须注意数据表的主键不能有“值重复”和“空值”等特性。,INSERT语句:用于向数据库表中添加新的数据行。,【例3.20】,给boy表中插入一个员工记录。,【例3.21】,批量插入记录。,UPDATE语句:用于更新或修改数据库中满足规定条件的现有记录。,【例3.22】,将boy表中的编号为“00101”的记录工资修改为:2000元。,【例3.23】,将boy表中的女性的工资增加200元。,DELETE语句:用于删除指定数据表中满足条件的记录。,【例3.24】,在boy表中,删除编号为“00102”的记录。,3.4.5 数据库提交命令,数据库提交撤消属于SQL的数据,控制类命令,在PowerBuilder中,经常被用于控制数据库的数据状态。,COMMIT语句:用于完成数据库的物理修改。,ROLLBACK语句:用于放弃自上一个COMMIT、ROLLBACK或CONNECT操作之后的所有数据库操作。,CONNECT语句:用于在程序中将指定的事务对象与数据库连接。,DISCONNECT语句:中断与数据库的连接,3.4.6 获取SQL命令,前面的建表过程中都是利用图形界面来完成的,PowerBuilder实际上是将建立数据库的SQL命令传递到了后台运行的DBMS中。,【例3.25】获取建表的SQL命令。,【例3.26】使用SQL命令进行数据查询。,3.4.7交互执行SQL命令,编程时经常会遇到要写一些SQL语句来测试一下数据及修改表中的数据。选择“View/Interactive SQL”菜单项进入“Interactive SQL”视图(ISQL)。,直接执行:直接在“ISQL Session”视图中,输入SQL语句。,读入SQL语句:在“Interactive SQL”视图中可读入文件中的SQL语句。,3.4.8自动生成SQL命令,PowerBuilder提供了图形化的SQL语句生成工具,就是SQL画板。SQL画板可以通过类似于创建数据窗口对象的图形界面生成SQL语句,并且直接粘贴到脚本环境中,而不必花过多时间去关注SQL语法。PowerBuilder的SQL语句画板能够构造三类语句:游标、非游标以及过程,非游标SQL语句对应于单行SELECT、INSERT、UPDATE和DELETE语句。,【例 3.27】,调用SQL画板。,3.5 数据库扩展属性设计,PowerBuilder扩展属性系统表保存了数据库中的表、列、显示格式、有效性规则和编辑风格等信息。对于这些系统表,同样可以通过SQL语句进行访问。,3.6 使用游标,当SELECT语句的执行结果是多条记录的时候,或当需要读取多条记录时,就需要使用游标进行操作。,游标的一般使用步骤为:,用DECLARE语句声明游标。,使用OPEN语句打开游标。,使用FETCH语句读取一行数据。,根据返回值处理数据。,判断是否已经读完所有数据,未读完时重复执行步。,使用CLOSE语句关闭游标。,下面介绍DECLARE、OPEN、FETCH、CLOSE语句,并构建一个游标程序。,DECLARE语句:和变量一样,游标也遵循先定义后使用的原则。,OPEN语句:OPEN语句打开已经声明的游标并执行相应的“SELECT”语句。,FETCH语句:FETCH语句从游标中读取当前记录并把它保存到指定的变量中。,CLOSE语句:CLOSE语句用于关闭已打开的游标。,【例 3.28】,从数据表“boy”中逐行取年龄小于40的记录并用消息框显示员工相关信息。,第四章 PowerScript 语言,编写程序代码是计算机软件系统开发必不可少的工作。PowerBuilder中使用语法比较简练的语句形式来书写程序命令,,,所使用的编程语言称为PowerScript,是一种高级的、结构化的面向对象的编程语言,包括事件处理、用户自定义函数和自定义对象等技术。,4.1 基础符号,PowerScript语言的基础符号包括代码、断行、续行、注释、标识符、代词、保留字等成分。,PowerScript中的代码编写具有如下特点:,没有行号,语句书写完毕后,按Enter键(回车键)转到下一行,开始下一条语句,不能在标识符或保留字的中间续行,在嵌入式SQL语句中无须使用续行符,可以把一条SQL语句写成多行,4.2 PowerScript标识符,用来标识变量名、数组名、文件名、函数名、窗口名、控件名和对象名等的字符序列,称为标识符。PowerScript中标识符的命名必须遵循以下原则:,必须以字母或下划线“_”开头,不能是保留字,长度不能超过127字符,不能含有空格,可以包含字母、数字及下述的特殊符号:下划线(_)、短横线(-)、美元符号($)、号码符号(#)、百分号(%),PowerScript中标识符不区分大小写,【例4.1】多行显示提示信息,4.3 数据类型,PowerBuilder的数据类型十分丰富,包括标准数据类型、系统对象数据类型、枚举类型和“ANY”数据类型四大类,程序中通过数据类型限定变量的取值范围。,标准数据类型,String类型,日期及时间类型,枚举类型,空值处理,4.4 运算符,在程序运行过程中,经常进行数值计算、数值比较、字符串连接、逻辑操作等运算。,这些操作运算需要用到运算符号,PowerScript支持的运算符可分为四种类型:,算术运算符:用于完成数学运算。,关系运算符:进行两个操作数的比较。,逻辑运算符:用于构成其结果为TRUE或FALSE的逻辑表达式。,连接操作符:连接操作符只有一个,就是符号“+”,用于把两个String型或Blob型变量的内容连接在一起,形成新的String或Blob型数据。,操作符的优先级:操作符的优先级决定表达式的运算次序。在表达式中,运算按运算符的特定次序进行,这一次序就是运算符的优先级。,4.5 对象、属性和变量,PowerScript是一个面向对象的编程语言,PowerBuilder应用程序的开发过程实际上就是各种对象的定义和使用过程。所有对象都有名称,并通过名称相互区分。在PowerScript中,引用对象的属性、函数、事件的方法很简单,就是使用圆点“.”作为所属标记符。,4.5.1命令代词,PowerScript提供了四个对象代词:This、Parent、ParentWindow和Super,可通过这些代词引用某指定对象。分别介绍如下:,This:代表窗口、用户对象、菜单、应用对象或控件本身,即代表正在为之编写事件处理程序的对象。,Parent:指当前控件所在的窗口。,ParentWindow:代表运行时菜单所在的窗口,该代词只能在菜单的事件处理程序中使用。,Super:只在使用继承时使用,指代的是该对象的父对象。,4.5.2 对象数据类型,在PowerBuilder中,窗口、菜单、各种控件都是系统对象,系统对象实际上都是定义在PowerBuilder内部的一种数据类型。查看系统对象继承关系的方法是:,单击“Power”工具栏的“Browser(浏览器)”图标,系统打开“Browser”对话框。,单击“System”标签页。,鼠标右击左边的列表框,系统显示一个快捷菜单。,选择“Show Hierarchy”菜单项。,鼠标再次右击左边的列表框,从弹出的快捷菜单中选择“Expand All”菜单项。,4.5.3,常量与,变量,常量是指在程序运行过程中其值不变的量。在标识符前面只要加上关键字“Coustant”就说明了该标识符是一个常量。声明为一个常量以后只能引用,不能更改它的值。,变量可以用来存放常数、中间结果等,还可以,作为控制变量来控制程序的运行。,PowerScript中变量遵循先定义后使用的原则,除了系统预定义的五个全局变量(SQLCA、SQLDA、SQLSA、Error、Message)外,其他所有变量在使用前必须首先定义。,PowerBuilder中变量按作用域分为四种:全局变量、实例变量、共享变量和局部变量。不同作用域的变量需要在不同的位置定义,下面分别予以介绍。,全局变量:在整个应用程序中都可访问,它的作用域是整个应用程序,在应用程序的任何地方都可以访问(赋值或引用)此变量。,实例变量:是对象级的变量,在对象内定义,只有在该对象的事件处理程序或函数中才能使用该实例变量。,共享变量:类似于实例变量,但使用不如实例变量那样频繁,只有在特定的环境中才会用到它。,局部变量:只在某程序段内或某函数内部有效的变量叫局部变量(Local Variables)。,4.5.4 数组,数组是一系列有序数据的组合,数组中的每一个元素都属于同一个数据类型,并用统一的数组名和下标来确定每一个元素。,使用数组时,有时元素的个数是不确定的。为了获得数组的上下界,PowerScript提供了两个函数:,LowerBound(Array,N),UpperBound(Array,N),4.6常用函数,PowerScript中提供了类型丰富、功能众多的内部函数,在应用开发中使用这些函数能够极大地提高程序开发的效率。,数据类型转换函数,类型检查函数,字符串操作函数,数值计算函数,日期时间函数,MessageBox()函数,【例4.2】进行三项选择的信息提示。,响铃函数Beep(),运行函数Run(),延时函数sleep(),实例检查函数isvalid(),4.9文件系统函数,PowerBuilder的文件系统函数非常多,涉及文件打开、读、写、关闭、复制、删除和创建目录、删除目录、判断目录是否存在等。,GetFileOpenName:显示打开文件对话框,让用户选择要打开的文件。,GetFileSaveName:显示保存文件对话框,让用户选择要保存的文件名。,FileOpen():以指定的读写方式打开指定的文件,同时返回该文件的句柄。,FileRead:从指定文件中读取数据。,FileWrite:向指定文件中写数据。,FileClose:关闭先前用“FileOpen()”函数打开的文件。,GetFolder():返回用户所选文件夹。,FileLength:得到指定文件的长度(以字节为单位)。,FileMove:移动文件。,FileSeek:将文件指针移动到指定位置。读写文件时相应函数会自动移动文件指针。,FileDelete:删除指定的文件。,FileExists:检查指定的文件是否存在。,FileCopy:文件复制。,4.10 PowerBuilder密码验证程序,“口令验证”是MIS系统的重要组成部分,通过用户名和密码的验证来确定用户的身份,是MIS系统常用的认证手段。,【例4.8】编制用户密码验证程序,密码正确则打开主窗口。,【例4.9】打开用户密码验证程序,添加新用户注册功能。,4.11 本章小结,本章详细介绍了PowerBuilder的PowerScript语言的有关知识,包括基础知识、操作符、数据类型、变量、数组以及脚本等。通过示例详细介绍了PowerBuilder内置了数以百计的函数和语句,还有很多属性和事件等,进可能全面地描述它们并对它们的用法进行详细分析。,第五章 PowerBuilder应用程序的对象,PowerBuilder为每个程序都定义了一个应用对象,将它作为程序的开始入口,所以在PowerBuilder开发的软件中,
展开阅读全文