1、1第一章 PowerBuilder 简介本章主要内容:本章中,首先扼要地介绍本课程在软件课程中的作用和信息系统的开发模式 PowerBuilder 的主要特性,然后阐述集成开发环境的组成、各画板的功能、作用、定制开发环境的方法、对象的基本概念等,并在章尾介绍本课程的教学内容以及开发 PowerBuilder 应用程序的基本步骤。自学内容:1.1 本课程在软件课程中的作用在计算机专业中,软件教学占有非常重要的位置。为了满足计算机职业岗位群的需要,近年来,我们对计算机网络专业和计算机程序员专业中的软件课程进行了相应的改革。通过学习 Word、Excel、FrontPage 等常用软件使学生学会计算
2、机的使用方法;通过学习 C 语言程序设计、数据结构等课程使学生掌握基本的程序设计方法;通过学习 SQL Server 使学生掌握网络数据库的设计方法和使用方法;通过学习网页制作和 Java 语言使学生能够编写网站应用程序;通过学习 PB 使学生能够编写客户端应用程序;通过学习软件工程使学生能够懂得软件开发的全过程,掌握编写软件的规范,为学生在“软件工厂”从事软件工作打下基础。从以上分析可知,PB 课程属于与职业岗位群直接有关的课程,在整个软件课程体系中占有比较重要的位置。不同的软件课程应该采用不同的教学方法,根据软件的特点,我们把软件课程分成三种不同类型:1程序设计类型。这类课程需要讲的内容较
3、多,讲的内容相对也比较完整,使用传统的“课堂教学课后习题上机实验”教学方式即能满足教学要求。2交互类型。这类课程人机交互内容占绝大多数,操作性强,采用传统的“黑板粉笔”的授课方式不但难以讲清楚,而且学生也很难学会使用。因此,对这类课我们通常采用上机授课,一人一机,边讲边练的方式,一般都能取得较好的效果。3可视化程序设计类型。这类课程往往是可视化的程序设计语言或软件开发工具,它既有程序设计类型的特点,也有交互类型的特点。PB 即属于这类课程,因此需要对这类课程的授课方式进行探讨。体系如下图所示。21.2 信息系统的开发模式1. 单机模式2. C/S 模式 33. B/S 模式1.3 PowerB
4、uilder 概述作为一个功能不凡的客户/服务器型应用程序开发工具,PowerBuilder 相当庞大,它的众多功能都在其开发环境中得到了体现。对初次接触PowerBuilder 的开发人员来说,可能会感到有点无从下手,但当你掌握了PowerBuild 基础知识并熟悉了它的使用方式后,很快就会爱不释手、游刃有余了。PowerBuilder 的集成开发环境为开发人员提供了一个交互式定义对象、编写代码、调试程序的图形界面。应用程序中使用的各种对象均通过称之为画板(Painter)的相应工具来定义,比如,窗口对象使用窗口画板定义、菜单对象使用菜单画板定义、用户对象使用用户对象画板定义、等等。开发人员
5、定义的所有对象都作为一个个的单独条目最终保存到磁盘文件中,这些磁盘文件叫做应用库,将应用库理解成应用程序的源文件也未尝不可。PowerBuilder 应用程序的开发过程实际上就是定义对象、组合对象的过程。PowerBuilder 是 Sybase Inc 的子公司-PowerSoft-推出的新一代数据库应用开发工具,它除了能够设计传统的高性能、基于客户/服务器(Client/Server)体系结构的应用系统外,也能够用于开发基于 Internet 的4应用系统。PowerBuilder 支持应用系统同时访问多种数据库,这既包括诸如Oracle、Sybase 之类的大型数据库,也包括小至 Fox
6、Pro 之类的支持 ODBC 接口的数据库。另外,PowerBuilder 开发环境随系统携带的 Adaptive Server Anywhere 本身就是个功能强大的 DBMS,对小型应用来说,直接使用这个数据库就是个质优价廉的选择。为方便用户界面的开发,PowerBuilder 提供了大量控件,这既丰富了应用程序的表达能力,也加快了项目的开发进度。PowerBuilder 还支持分布式应用系统的开发,形成多层应用系统结构,也就是说,用 PowerBuilder 不仅能够开发客户端应用程序,而且还可以轻而易举地构造应用服务器,从而形成分布式应用。PowerBuilder 支持多种平台,并能生
7、成机器代码的可执行文件。下面简单地介绍一下 PowerBuilder 的特点:一 专业的客户/服务器开发工具客户/服务器是一种将任务进行分解、然后协同解决的计算模式。客户端的应用程序负责提出任务需求,服务器端的应用程序则为客户提供服务。用PowerBuilder 开发出的应用程序能够与数据库服务器完美地协同工作,构成客户/服务器计算模式。二 强大的 Web 开发功能1、通用的 Web 目标2、4GL Web 页面3、Web DataWindow 容器组件三 面向对象的程序设计在 PowerBuilder 中创建的窗口、菜单、数据窗口等都是对象。除了使用系统预先定义的对象外,开发人员可以自行构造
8、新的对象(称做用户对象),扩展系统的预定义对象,将各种对象有机地组合起来就构成了 PowerBuilder 应用程序。对象包括三方面的特征:属性、事件和函数。 属性规定了对象的特征,比如标题是什么,以何种颜色显示等; 事件说明对象响应什么样的操作,当我们单击窗口时,就向窗口发出了一个单击事件; 函数封装了对象的功能,也是应用程序与对象交换信息的主要手段,在其它面向对象的编程语言中,也尝把函数称做“方法”。PowerBuilder 主要包括的对象:1.应用对象(Application)2.窗口对象(Window)3.数据窗口对象(DataWindow)4.菜单(Menu)5.函数(Functio
9、n)6.查询(Query)7.结构(Structure)8.用户对象(User Object)9.工程对象(Project)四 事件驱动的应用程序所有运行于该环境下的程序并不是顺序地执行,而是用户通过各种操作控制应用程序的流程。5五 支持多种关系数据库管理系统用 PowerBuilder 开发的应用程序可以同时访问多个数据库系统,比如说,我们可以从 Oracle 中查询数据,然后将结果放入到 Foxpro 中。PowerBuilder支持多种关系数据库管理系统(RDBMS),既包括诸如Oracle、Sybase、Microsoft SQL Server、IBM DB2、Imformix 等大型
10、数据库,也包括 Xbase、Foxpro、Paradox 等个人数据库。对大型数据库来说,PowerBuilder 提供了旨在充分发挥其性能的专用接口,而小型数据库则可通过ODBC 接口灵活地访问。而且,PowerBuilder 本身带有一个功能不凡的数据库-Sybase SQLAnywhere,利用它我们可以脱离网络环境单机运行应用程序。六 丰富的数据表现风格PowerBuilder 的数据窗口为展现数据的本质提供了丰富的手段,数据窗口能够从多种数据源提取数据,然后以多种风格展现在用户面前,这既包括文本显示方式,也包括统计图分析方式。利用数据窗口,用户可以直观地查询、修改、插入、删除、打印、
11、浏览数据,而且,PowerBuilder 的数据窗口还提供了组框对象和按钮对象,开发人员可以使用它们将数据窗口中的对象进行分组,并且将用户对数据窗口的操作界面集成在数据窗口内部。七 支持交叉平台开发目前支持的平台有:1. Windows 95/98/Me/20002. Macintosh3. UNIX4. Sun Solaris5. HP-UX6. IBM AIX RS6000 八 具有极高的开发效率,支持团队开发应用程序开发步骤用 PowerBuilder 开发应用系统时,一般都要经过系统分析、系统设计、系统开发、代码调试、系统测试、生成 EXE、交付应用等各个阶段。一、系统分析和系统设计
12、实际上,在开发任何应用系统之前,开发人员都必须充分了解系统需求,理解系统应该完成的真正任务,千万不能因为赶进度而过分缩减或忽略该阶段的工作,这一阶段的成果很大程度上决定了项目的成败。理解了系统需求后,就进入系统设计阶段,考虑用户界面的风格、使用何种数据库、如何组织数据等。二、系统开发在 PowerBuilder 中,建立应用程序需做的大量工作是创建对象、描述对象、设置属性,而不是编写大量的代码。系统开发过程可分为:1建立应用对象;2生成用户对象、函数和结构;3建立窗口和菜单;4创建数据窗口对象,将数据窗口对象连接到窗口上;5编写各对象的事件处理程序;66调试应用;7测试系统;8生成 EXE 文
13、件。第二章 数据库管理本章主要内容:本章中,首先介绍数据库接口及与数据库的连接,然后阐述连接到数据库之后如何操作数据库,这些操作包括创建表、删除表、 维护索引和关键字等。这些操作在 PowerBuilder 8.0 中都被集成到数据库画板中,然后在库画板调用打开相应的画板或使用其他工具来操作数据库。自学内容: 2.1 数据库接口和数据库连接PowerBuilder 与数据库的连接通过数据库接口来实现。PowerBuilder 提供了两类接口:ODBC 接口和专用接口。1. ODBC(Open Data Base Connectivity)接口是微软公司提出的开放式数据库互连标准接口,它以关系数
14、据库标准查询语言 SQL 来存取连接到的数据源,ODBC 支持单个应用系统访问多个不同的数据库管理系统(DBMS) 。2. 专用接口针对具体的数据库管理系统而设计,通过专用接口我们可以将PowerBuilder 连接到相应的数据库上。一、ODBC 接口ODBC 是 PowerBuilder 与数据库进行连接的接口之一,它位于PowerBuilder 与具体的数据库管理系统之间,它由四层结构组成:1一层为 ODBC 应用软件,包括用 PowerBuilder 开发的应用程序。应用程序通过调用 ODBC 函数,向 ODBC 数据源提供操作数据源的 SQL语句,并处理 SQL 语句返回的结果。Pow
15、erBuilder 通过动态链接库PBODB60.DLL 完成这一功能。对开发人员来说,调用 ODBC 函数的过程是隐含的,它由 PowerBuilder6.0 自动完成。2第二层为驱动管理程序,或称作驱动管理器,它管理并装载驱动程序。驱动管理器的作用为: 用 ODBC.INI 文件把数据源名映射成特定驱动程序的动态链接库 处理几个 ODBC 初始化调用 为每个驱动程序提供 ODBC 的入口点 检验 ODBC 的调用参数和次序3第三层为驱动程序,它处理 ODBC 函数调用,提交 SQL 请求到特定的数据源并把结果返回给应用程序。4第四层是数据源,数据源包括要存取的数据以及相关的操作系统、数据库
16、管理系统和网络系统。通过 ODBC 接口,PowerBuilder 访问数据库的模式:PB 应用程序 数据库服务器 ODBC 接口 数据库到网络的接口 数据库到网络的接口 7网 络 网 络 二、连接数据库通过 ODBC 接口把 PowerBuilder 开发环境连接到数据库实际上要经过三个步骤:1建立或配置与要连接的数据库对应的数据源 ODBC 数据源:应用 ODBC 配置画板。2建立数据库描述文件或设置连接参数。 应用“DB Profile”工具栏,打开“Database Profile”对话框,选择 ODBC,单击鼠标右健选择“New Profile” 。3连接到 ODBC 数据库:使用“
17、DB Profile”画板将开发环境连接到相应的数据源上了。2.2 创建和删除数据库一、创建数据库讲解创建数据库的主要步骤。练习创建 Server Anywhere8.0 的 stock 数据库。二、删除数据库讲解删除数据库的主要步骤。练习删除 stock 数据库。练习:1、通过 ODBC 与本地机上的 SQLServer 2000 中的数据库 student 建立连接2、通过 ODBC 与教师机上的 SQLServer 2000 中的数据库 student 建立连接3、通过 ODBC 与本地机上的 Server Anywhere8.0 中的数据库 stock 建立连接通过以上练习,重点找出不
18、同之处2.3 操纵表结构数据表是一个二维表,它可以表示一个关系数据模型中的关系。由列表示字段(或域) ,由行表示元组(或记录) 。注意:在 PowerBuilder 中不能用汉字作为数据表的列名。Integer 型数据由系统最多定义长度。数据的长度就是数据表的列的宽度。数据表定义工具栏: 创建表实际上就是定义构成表的各列的特性,即列属性。列属性分为基本属性和扩展属性,基本属性必须加以定义,包括列名称、列数据、列宽度、小数位数、是否为空以及默认值,其中小数位数只有当数据类型为数值型时才需加以定义。列的扩展属性主要用于定义列的显示格式、编辑风格和有效性规则。一、创建表 1单击工具栏中的“Creat
19、e table ”按钮,打开列视图。2 在列视图中,每一行定义表的一个列的属性,包括如下信息(按 Tab 键将8输入焦点移动到下一栏,按 Shift+Tab 键将输入焦点移动到上一栏): Column Name:表的列名,使用标识符作列名; Data Type:指定列的数据类型,PowerBuilder 以列表形式列出当前数据库支持的所有类型,从中选择所需类型; Width:列的宽度; Dec:小数位数,只有当列的数据类型选择为 Decimal 或 Numeric 时才需要输入这个值,它表示小数点后数字的位数; Null:是否允许为空值,Yes 允许,No 不允许; Default:设置该列的
20、默认值。3输入完表的一个列各种属性后,将输入焦点定位在上部的任意编辑框中,按回车键系统自动插入下一列。4定义了表的所有列后,单击工具栏中的 Save 按钮,打开“Greate New Table”对话框,在该对话框中的 “Table Name”中输入表名,然后单击“OK”按钮关闭对话框并保存所创建的表。二、修改表只能修改非关键描述,不能对已经定义过的列数据类型进行修改。三、删除列注意:删除一个列的定义将删除此列中的所有数据。24 定义列的扩展属性1、列的属性对话框列的“属性”对话框不但可以 对列进行“扩展属性”的 设置,更主要的是能 够新建和修改“扩 展属性” 的属性 值选项。“属性”对话框有
21、“General”普通、 “Headers”标题、 “Display”显示、“Validation”有效性、 “Edit Style”编辑风格,五个选项,最右边的 3 个选项卡 Display、Validation、和 Edit Style 即用于定义列的扩展属性。(1) “General”普通属性“General”普通卡片是进入“属性”对话框后即出现的卡片。(2) “Headers”标题属性“Headers”标题属性项包括列的扩展属性中的“表头”和“标签”两个属性。并可以改变“表头”和“标签”的位置。9(3) “Display”显示属性“Display”显示项中,可以定义新的显示格式,也可以
22、修改已有的显示格式定义。(4) “Validation”有效性属性 “Validation”有效性属性用于对输入数据的限制。(5) “Edit Style”编辑风格属性“Edit Style”编辑风格项的主要功能是修改已有的“编辑”属性值,或定义新的“属性”值。有如下编辑风格: 编辑框:用于设置列的一些基本属性。 下拉列表框:用于设置下拉列表框。 复选框:可以让用户在 2 个可选值中选择一个作为输入值。 单选按钮:单选按钮可以让 2 个或多于 2 个的可选值中选择一个作为输入值。编辑屏蔽:可以让用户按某种固定的格式输入数据。2、定义列的扩展属性操作步骤(1)在对象视图区中展开当前连接的数据库T
23、ablesColumns,然后选择要定义的扩展属性的列;(2)单击工具栏上的 Properties 按钮,打开列视图区;(3)激活 Display 选项卡,如下图;(4)在 Display 选项卡中一般有 6 个可设置属性,其中, Display Format下拉列表框用于选择当前列数据的显示格式,该显示格式以系统表的形式存储于数据库中;(5)Justify 下拉列表框用于选择显示列数据的对齐格式,可选项有None、Left、Right 和 Center,分别表示不对齐、左对齐、右对齐和中间对齐。(6)Display Height 和 Display Width 编辑框可设置显示列数据所占据的
24、矩形的高度和宽度,以厘米为单位;(7)左 Case 下拉列表框中可选择显示列数据时字母的大小写,可选择的有 Any、Upper 和 Lower,分别表示任意、大写和小写;(8)启用 Picture 复选框,则该列数据以图片形式显示,即只有当该字段获得焦点时才显示数据,否则不显示数据;10(9)最后,单击工具栏上的 Save 按钮保存属性设置。2.5 创建索引、主键及外键定义构成表的各列的基本属性后,可以说已经建立了表,但是创建表的目的是为了向表中存储数据,而仅定义各列基本属性后尚不能向表中输入数据,这是因为在 PowerBuilder 中要向表输入数据,必须为表定义一个唯一索引或主关键字。建立
25、主关键字“主键”由一个数据表中的一个或几个列组成。通过主键,可以连接到另外一个或几个相关的数据表。选定表后建立主键有两种途径:在展开的表名下用鼠标右键单击 Primary Key 项,然后选择弹出的 New Primary Key 菜单项;数据库画板的 PainterBar 的下拉图标列表框中选择 Create new primary key for selected table 工具按钮。进入主键设置对话框后进行选择,然后单击 PainterBar 上的 Save 按钮存盘完成了主关键字的建立。建立外部关键字外键是与主键相对而言的。外键是指一个数据表与另一个或几个数据表相联系的一个键。建立了
26、外键以后,就可以通过主键打开与之有外键相连的所有数据表。选定表后建立主键有两种途径:在展开的表名下用鼠标右键单击 Foreign Key 项,然后选择弹出的 New Foreign Key 菜单项;数据库画板的 PainterBar 的下拉图标列表框中选择 Create new foreign key for selected table 工具按钮。进入外键设置对话框后有 2 个选项卡:General 选项卡:在这里要为外键指定一个名称,并要选择构成外键的字段;Primary Key 选项卡:在这里要确定构成外键的字段属于那个表的主键;以上项目确定后单击 PainterBar 上的 Save
27、按钮存盘完成了外键的建立。建立索引建立索引只会改变数据表中的逻辑顺序,而不会改变数据表中的记录的物理顺序。只有建立了索引才能在数据库窗口中输入和修改数据。选定表后建立主键有两种途径:在展开的表名下用鼠标右键单击 Indices 项,然后选择弹出的 New Indices菜单项;数据库画板的 PainterBar 的下拉图标列表框中选择 Create new indices for selected table 工具按钮。进入索引设置对话框后进行选择:索引名称(Index):由于一个表可以建立多个索引,所以这里必须指定名称;选择建立索引的字段,可以选择一个或多个字段;指定是否唯一(Unique)索引,如果是则选中复选框 Unique;说明索引是按升序还是降序排列,如果是升序则选中复选框