《Delphi程序设计及实验指导》电子教案第9章.ppt
《《Delphi程序设计及实验指导》电子教案第9章.ppt》由会员分享,可在线阅读,更多相关《《Delphi程序设计及实验指导》电子教案第9章.ppt(71页珍藏版)》请在三一办公上搜索。
1、第九章 数据库应用程序设计,9.1 数据库系统概述 9.2 Delphi数据库应用程序体系结构 9.3 数据库设计 9.4 常用数据库组件 9.5 数据库应用程序综合实例习题,9.1 数据库系统概述,9.1.1 基本概念 1.数据数据(Data)是数据库中存储的基本对象。所谓数据,就是能被计算机识别与处理的符号。数据的种类很多,如数字、文字、表格、图形、图像、声音等,都属于数据。2数据库所谓数据库(Database,简称DB)是长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。,9
2、.1 数据库系统概述,3数据库管理系统数据库管理系统(DataBase Management System,简称DBMS)是一个以统一的方式管理、维护数据库中数据的一系列软件集合。DBMS是位于用户应用程序和操作系统之间的数据库管理系统软件,对数据库进行统一的管理和控制。它的主要功能如下:(1)数据定义功能(2)数据操纵功能(3)数据库的运行管理(4)数据库的建立和维护功能(5)数据库通信功能,9.1 数据库系统概述,4数据库系统数据库系统(DataBase System,简称DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统和数据库应用程序组成。数据库的建立、使用和维
3、护等工作只靠一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员(DataBase Administrator,简称DBA)。,9.1 数据库系统概述,9.1.2 Delphi的数据库特性Delphi提供了许多组件以方便地创建数据库应用程序。它可以访问多种数据库管理系统的数据库,数据库对象的数据成员既可在设计阶段设置,也可在运行阶段通过程序代码进行设置。Delphi的组件面板上提供了数据库应用程序开发中需要使用的组件选项卡。,9.1 数据库系统概述,9.1.3 Delphi可以使用的数据源Delphi数据库应用程序可以通过BDE获取它们所需的数据,BDE与不同类型的数据源打交
4、道,BDE可以使用的数据源见表9-3。,9.1 数据库系统概述,表9-3 BDE可以使用的数据源,9.2 Delphi数据库应用程序体系结构,一个数据库应用程序往往包括两部分:数据库访问部分和用户界面。数据库访问部分直接或间接访问数据库,这为数据库应用程序和数据库之间提供接口;而用户界面主要是为了方便用户使用,尽量要设计友好的界面,方便用户操作。在编写数据库应用程序时,一般把数据库访问部分和用户界面分别封装到不同的模块中。在Delphi中提供了数据模块(Data Module)这种容器,在编写数据库应用程序时把数据库访问部分的内容放在数据模块中,这样就便于数据库应用程序数据存取的一致性,便于程
5、序的调试和后期维护。数据库应用程序的体系结构主要由两方面决定,一方面是使用的数据库类型(即是本地数据库还是远程数据库),另一方面是同时访问数据库的用户数以及数据库中需要存储哪些类型的信息。由此,数据库应用程序结构可以分为三种:单层结构、两层结构和多层结构。,9.2 Delphi数据库应用程序体系结构,9.2.1 单层结构 在单层数据库应用程序中,应用程序和数据库共享同一个文件系统,它们使用本地数据库或文件来存取数据。一个单层的数据库应用程序同时包含了用户界面和数据访问机制(可能是通过BDE,也可能是通过文件)。单层数据库应用程序的体系结构如图9-1所示。在此结构中,可以通过基于BDE的数据集组
6、件从本地数据库中获取数据,再通过数据源(DataSource)组件向用户提供数据。,9.2 Delphi数据库应用程序体系结构,图9-1 单层数据库应用程序的结构,9.2 Delphi数据库应用程序体系结构,9.2.2 两层结构在两层数据库应用程序中,客户程序提供用户界面,通过BDE、ADO从远程数据库服务器获取数据。两层数据库应用程序的体系结构如图9-2所示。把一个单层数据库应用程序转换为两层数据库应用程序,只要修改数据集组件的属性连接一个SQL服务器就行了。,9.2 Delphi数据库应用程序体系结构,图9-2 两层数据库应用程序的结构,9.2 Delphi数据库应用程序体系结构,9.2.
7、3 多层结构 多层数据库应用程序是为了适应网络技术的飞速发展而发展起来的一种新技术。它把整个应用程序分为多个单元,所有单元一齐合作完成对数据库的管理。它是建立在两层数据库应用基础上的,只要深刻理解了两层数据库模型,就能很好地掌握多层结构数据库应用程序。,9.2 Delphi数据库应用程序体系结构,在多层结构数据库应用程序中,客户程序、应用服务器和远程数据库服务器通常分布在不同的机器上。客户程序主要提供用户界面,它向应用服务器请求数据和申请更新数据,再由应用服务器向远程数据库服务器请求数据和申请更新数据。,9.3 数据库设计,数据库应用程序的设计包括两个部分:数据库设计和应用程序设计。在开发数据
8、库应用程序之前,必须进行需求分析,对数据库的概念结构、逻辑结构和物理结构进行规范设计,这是决定数据库应用程序开发成败的关键。通常数据库所包含的大量信息是以表的形式存储。数据库中有的表是独立的,有的表之间存在一定的关系,设计数据库就是将大量信息经过分析和归纳,分别存储到多个表中,确定表之间的相互关系。,9.3 数据库设计,9.3.1 常用数据库 在Delphi 7中要开发数据库应用程序,首要的任务就是访问数据库。Delphi 7可以访问多种数据库,如Paradox、Access等基于文本的数据库、Oracal、Infomix、MicroSoft SQL Server等大型数据库。对这些数据库的访
9、问可以通过BDE、ADO组件中的OLE DB方式进行访问。,9.3 数据库设计,常用数据库有1Paradox2Access 3大型数据库 常用的大型数据库有InterBase、Oracle、Sybase、Infomix、DB2和Microsoft SQL Server等,9.3 数据库设计,9.3.2 数据库、表的创建与维护1.创建数据库【例9-1】在BDE中创建别名为Rsgl的数据库 2.创建表【例9-2】在Database Desktop中创建表Department,其结构见表9-4。3.修改表结构4.向表中添加记录【例9-3】向Department表中添加一批记录。,9.3 数据库设计,
10、表9-4 Department表结构,9.3 数据库设计,表9-5 Employees表结构,9.3 数据库设计,表9-6 Department表中的记录信息,9.4 常用数据库组件,Delphi 7提供了很多的数据库组件,使得开发数据库应用程序变得相当容易。Delphi 7中为了创建数据库应用程序需要使用BDE数据集组件、数据访问组件和数据控制组件。Delphi使用可视化的组件创建数据库应用程序,跟创建其它的非数据库应用程序一样,数据库组件都具备一定的属性,程序设计人员可以在设计过程中设置组件的多种属性,也可以在程序运行过程中通过程序来设置组件的各种属性。在Delphi组件面板上的Data
11、Access和Data Control选项卡上的组件是用于开发数据库应用程序的。数据访问组件、数据控制组件以及它们与数据库、用户界面的有机联系如图9-14所示。,9.4 常用数据库组件,图9-14 数据库组件的体系结构,9.4 常用数据库组件,9.4.1 BDE数据集组件 BDE选项卡上有数据集组件TTable、TQuery、TStoredProc以及与TQuery组件相联系的TUpdateSQL组件。Database与Session组件用于建立数据库连接;BatchMove组件用于复制数据;NestedTable组件主要用于将主从关系的数据嵌套在子数据库表格中。BDEClientDataSe
12、t组件将ClientDataSet与BDE相关的数据访问组件结合起来。,9.4 常用数据库组件,1TTable组件(1)用途TTable组件是使用频率最高的数据库组件,该组件可以建立数据库应用程序(2)主要属性 Active属性 DatabaseName属性 TableName属性 TableType属性 Exclusive属性,9.4 常用数据库组件,(3)与表的创建与删除相关的属性与方法 Fields属性 FieldDefs属性 CreateTable方法 DeleteTable方法 RenameTable方法(4)与数据库表索引相关的属性和方法 IndexName属性 IndexFiel
13、dCount属性和IndexFields属性 IndexDefs属性 GetIndexNames方法,9.4 常用数据库组件,(5)数据查询 Locate方法和Lookup方法 GotoKey方法和FindKey方法 GotoNearest方法和FindNearest方法 SetKey方法(6)与表记录的定位、增加、删除、修改操作相关的属性和方法 BOF和EOF属性 RecNo属性 First方法和Last方法 Prior方法和Next方法 Append方法和AppendRecord方法 Insert方法和InsertRecord方法 Post方法和Edit方法 Cancel方法和Delete
14、方法 SetRecords方法 EmptyTable方法,9.4 常用数据库组件,【例9-4】在例9-3所创建的数据库基础上使用Table组件实现查询、插入、删除、更新的功能。查询代码编写单击设计界面中的“查询”按钮,查询employees.db数据库表中的记录。Delphi提供了多种实现查询功能的方法:调用Locate方法在“查询”按钮的Onclick事件的处理程序中加入如下代码:procedure TForm1.Button1Click(Sender:TObject);beginTable1.Locate(姓名,丁一,);/查询姓名为“丁一”的记录end;,9.4 常用数据库组件,调用Go
15、toKey方法在查询之前,要确保查询的字段是关键字段或辅助索引字段,如果要查询的字段不是关键字段或辅助索引字段,则查询过程失败,系统会报错。例如,在“查询”按钮的Onclick事件的处理程序中加入如下代码:procedure TForm1.Button1Click(Sender:TObject);beginTable1.IndexFieldNames:=职工号;/指定查询字段 Table1.SetKey;/将Table1置为查询状态 Table1.Fields0.AsString:=111001;/指定查询字段值 Table1.GotoKey;/进行查询end;,9.4 常用数据库组件,插入功
16、能实现 用 Insert 方法实现插入功能在“插入”按钮的Onclick事件的处理程序中加入如下代码:procedure TForm1.Button2Click(Sender:TObject);beginTable1.Insert;/设置为插入状态 Table1.Fields0.AsString:=111002;/设置要插入的值 Table1.Post;/将插入的记录写回数据库End;,9.4 常用数据库组件,用 Append 方法实现插入功能在“插入”按钮的Onclick事件的处理程序中加入如下代码:(*实现在尾部插入一条职工号为“111003”的记录*)procedure TForm1.B
17、utton2Click(Sender:TObject);beginTable1.Append;/设置为插入状态 Table1.Fields0.AsString:=111003;/设置要插入的值 Table1.Post;/将插入的记录写回数据库End;,9.4 常用数据库组件,(4)删除功能实现在“删除”按钮的Onclick事件的处理程序中加入如下代码:procedure TForm1.Button3Click(Sender:TObject);begin Table1.Delete;/删除记录指针指向的记录End;(5)更新功能实现 在“更新”按钮的Onclick事件处理程序中加入如下代码:pr
18、ocedure TForm1.Button3Click(Sender:TObject);begin Table1.Edit;/将Table控件置成编辑状态 Table1.Fields0.AsString:=王芳 Table1.Post;/将修改后的记录写回数据库End;,9.4 常用数据库组件,2TQuery组件(1)用途Delphi中的另一个重要的数据集组件是TQuery,它需要使用SQL语言命令来进行查询。Delphi通过TQuery组件实现了对SQL语言的支持,在Delphi开发的数据库应用程序中,SQL语句通过TQuery组件传递到要访问的数据库系统的数据库引擎上,由数据库引擎具体执行
19、SQL语句,以实现对数据的操作,而不是传递给Delphi中的BDE,由BDE实施具体的SQL动作。,9.4 常用数据库组件,(2)主要属性 DatabaseName属性 SQL属性 Active属性 Filter属性 Filtered属性 Params属性 ExecSQL方法,9.4 常用数据库组件,(3)静态SQL语句和动态SQL语句Delphi中使用的SQL语句有两种:静态SQL语句和动态SQL语句。静态SQL语句是指在程序设计阶段,设置TQuery组件的SQL属性。这样当设计阶段或者在程序执行阶段设置TQuery组件的Active属性为true时,或者在程序运行期间调用TQuery组件的
20、Open或ExecSQL方法执行SQL语句。动态SQL语句是指在SQL语句中包含一些参数变量,在程序运行过程中这些变量的值都是可变的。例如可以设置SQL属性为:Select*from Employees where 姓名=:name;其中name变量便是一个参数变量,它由一个冒号引导,在程序运行过程中要为参数变量赋值才行,不然SQL语句不能正确执行。,9.4 常用数据库组件,(4)TQuery组件的使用方法执行SQL语句有两种方式:一种是在设计期间把Active属性设为true,程序会自动执行SQL语句:另一种方式是在程序运行期间调用TQuery组件的Open或者ExecSQL方法执行SQL语
21、句。如果希望返回查询结果,调用Open,如果不需要返回查询结果,调用ExecSQL。在调用Open或ExecSQL之前,最好先调用Prepare方法通过服务器做好准备。执行SQL所返回的查询结果实际上是数据集中满足特定条件的记录所组成的子集,数据库表格只显示符合特定条件的记录。在程序运行过程中,首先调用TQuery组件的Close方法关闭当前的SQL调用,然后调用SQL的Clear方法清除SQL属性,并使用SQL的Add方法增加新的SQL命令到SQL属性中。,9.4 常用数据库组件,在程序运行过程中,首先调用TQuery组件的Close方法关闭当前的SQL调用,然后调用SQL的Clear方法清
22、除SQL属性,并使用SQL的Add方法增加新的SQL命令到SQL属性中。由于在程序运行过程中,程序设计人员是无法确定TQuery组件中的SQL语句是否会返回一个查询结果,所以执行SQL语句时经常在TryExcept模块中。一般形式如下:TryQueryl.Open;ExceptQuery1.ExecSQL;end;,9.4 常用数据库组件,如果使用动态SQL语句,首先调用Prepare方法,给动态SQL语句中的参数赋值,然后再调用Open方法或ExecSQL方法。调用Prepare方法并不是必须的,但是对于要多次执行 TQuery组件中SQL属性中的动态SQL语句,调用Prepare可以大大提
23、高TQuery组件执行 SQL语句的性能。,9.4 常用数据库组件,【例9-5】在例9-3所创建的数据库基础上使用TQuery组件实现查询、插入、删除、更新的功能。,图9-17 窗体界面设计,9.4 常用数据库组件,查询功能的实现用TQuery组件实现查询功能的SQL语句的基本格式如下:SELECT FROM WHERE ORDER BY GROUP BY 其中SELECT和FROM子句是不可缺少的。,9.4 常用数据库组件,SELECT子句指出查询结果中显示的字段名,以及字段名和函数组成的表达式等。若要显示表中的所有字段时,可用通配符“*”代替字段名表。FROM子句指定要查询的数据库表。WH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi程序设计及实验指导 Delphi 程序设计 实验 指导 电子 教案
链接地址:https://www.31ppt.com/p-6071913.html