Borland Delphi教学讲义 第9章

上传人:紫** 文档编号:242979772 上传时间:2024-09-13 格式:PPT 页数:71 大小:358KB
返回 下载 相关 举报
Borland Delphi教学讲义 第9章_第1页
第1页 / 共71页
Borland Delphi教学讲义 第9章_第2页
第2页 / 共71页
Borland Delphi教学讲义 第9章_第3页
第3页 / 共71页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第九章 数据库应用程序设计,9.1,数据库系统概述,9.2 Delphi,数据库应用程序体系结构,9.3,数据库设计,9.4,常用数据库组件,9.5,数据库应用程序综合实例,习题,9.1,数据库系统概述,9.1.1,基本概念,1.,数据,数据(,Data,)是数据库中存储的基本对象。所谓数据,就是能被计算机识别与处理的符号。数据的种类很多,如数字、文字、表格、图形、图像、声音等,都属于数据。,2,数据库,所谓数据库(,Database,,简称,DB,)是长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。,9.1,数据库系统概述,3,数据库管理系统,数据库管理系统(,DataBase,Management System,,简称,DBMS,)是一个以统一的方式管理、维护数据库中数据的一系列软件集合。,DBMS,是位于用户应用程序和操作系统之间的数据库管理系统软件,对数据库进行统一的管理和控制。,它的主要功能如下:,(1),数据定义功能,(2),数据操纵功能,(3),数据库的运行管理,(4),数据库的建立和维护功能,(5),数据库通信功能,9.1,数据库系统概述,4,数据库系统,数据库系统(,DataBase,System,,简称,DBS,)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统和数据库应用程序组成。数据库的建立、使用和维护等工作只靠一个,DBMS,远远不够,还要有专门的人员来完成,这些人被称为数据库管理员(,DataBase,Administrator,,简称,DBA,)。,9.1,数据库系统概述,9.1.2 Delphi,的数据库特性,Delphi,提供了许多组件以方便地创建数据库应用程序。它可以访问多种数据库管理系统的数据库,数据库对象的数据成员既可在设计阶段设置,也可在运行阶段通过程序代码进行设置。,Delphi,的组件面板上提供了数据库应用程序开发中需要使用的组件选项卡。,9.1,数据库系统概述,9.1.3 Delphi,可以使用的数据源,Delphi,数据库应用程序可以通过,BDE,获取它们所需的数据,,BDE,与不同类型的数据源打交道,,BDE,可以使用的数据源见表,9-3,。,9.1,数据库系统概述,表,9-3 BDE,可以使用的数据源,数据源,特性描述,dBASE,数据库,数据库表是通过,dBASE,数据库管理系统或,DBD,建立的,每一个表是一个独立的,.dbf,文件,Paradox,数据库,数据库表是通过,Paradox,数据库管理系统,.db,或,dbd,建立的,每一个表是一个独立的文件,ASCII,文件,表是通过,Database Desktop,建立的,每个,.txt,表是一个独立的文件,本地,InterBase,服务器,数据库是通过,InterBase,数据库管理系统,.,gbd,建立的,多个表包含在一个数据库文件中,SQL,数据库服务器,数据库是通过相应的数据库服务器提供的依赖,Oracle,、,Sybase,、,Informix,专用或通用工具建立的,也可以通过,dbd,或数据库管理系统,Microsoft SQL Server,创建数据库,并通过,SQL Link,访问数据库管理系统,InterBase,ODBC,数据源,主要是指那些具有,ODBC,接口的数据库系统依赖于如,MS Access,、,Btrieve,等的数据库,9.2 Delphi,数据库应用程序体系结构,一个数据库应用程序往往包括两部分:数据库访问部分和用户界面。数据库访问部分直接或间接访问数据库,这为数据库应用程序和数据库之间提供接口;而用户界面主要是为了方便用户使用,尽量要设计友好的界面,方便用户操作。,在编写数据库应用程序时,一般把数据库访问部分和用户界面分别封装到不同的模块中。在,Delphi,中提供了数据模块(,Data Module,)这种容器,在编写数据库应用程序时把数据库访问部分的内容放在数据模块中,这样就便于数据库应用程序数据存取的一致性,便于程序的调试和后期维护。,数据库应用程序的体系结构主要由两方面决定,一方面是使用的数据库类型(即是本地数据库还是远程数据库),另一方面是同时访问数据库的用户数以及数据库中需要存储哪些类型的信息。由此,数据库应用程序结构可以分为三种:单层结构、两层结构和多层结构。,9.2 Delphi,数据库应用程序体系结构,9.2.1,单层结构,在单层数据库应用程序中,应用程序和数据库共享同一个文件系统,它们使用本地数据库或文件来存取数据。一个单层的数据库应用程序同时包含了用户界面和数据访问机制(可能是通过,BDE,,也可能是通过文件)。单层数据库应用程序的体系结构如图,9-1,所示。在此结构中,可以通过基于,BDE,的数据集组件从本地数据库中获取数据,再通过数据源(,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.3,多层结构,多层数据库应用程序是为了适应网络技术的飞速发展而发展起来的一种新技术。它把整个应用程序分为多个单元,所有单元一齐合作完成对数据库的管理。它是建立在两层数据库应用基础上的,只要深刻理解了两层数据库模型,就能很好地掌握多层结构数据库应用程序。,9.2 Delphi,数据库应用程序体系结构,在多层结构数据库应用程序中,客户程序、应用服务器和远程数据库服务器通常分布在不同的机器上。客户程序主要提供用户界面,它向应用服务器请求数据和申请更新数据,再由应用服务器向远程数据库服务器请求数据和申请更新数据。,9.3,数据库设计,数据库应用程序的设计包括两个部分:数据库设计和应用程序设计。在开发数据库应用程序之前,必须进行需求分析,对数据库的概念结构、逻辑结构和物理结构进行规范设计,这是决定数据库应用程序开发成败的关键。通常数据库所包含的大量信息是以表的形式存储。数据库中有的表是独立的,有的表之间存在一定的关系,设计数据库就是将大量信息经过分析和归纳,分别存储到多个表中,确定表之间的相互关系。,9.3,数据库设计,9.3.1,常用数据库,在,Delphi 7,中要开发数据库应用程序,首要的任务就是访问数据库。,Delphi 7,可以访问多种数据库,如,Paradox,、,Access,等基于文本的数据库、,Oracal,、,Infomix,、,MicroSoft,SQL Server,等大型数据库。对这些数据库的访问可以通过,BDE,、,ADO,组件中的,OLE DB,方式进行访问。,9.3,数据库设计,常用数据库有,1,Paradox,2,Access,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,数据库设计,表,9-4 Department,表结构,字段名,数据类型,长度,部门号,A,3,部门名称,A,10,负责人,A,8,电话号码,A,11,9.3,数据库设计,字段名,数据类型,长度,职工号,A,6,姓名,A,8,性别,A,2,出生日期,D,8,婚否,L,1,职称,A,10,职务,A,10,基本工资,$,6,部门号,A,3,简历,M,100,表,9-5 Employees,表结构,9.3,数据库设计,表,9-6,Department,表中的记录信息,部门号,部门名称,负责人,电话号码,001,技术处,丁一,56221356,002,生产处,杨帆,45225542,9.4,常用数据库组件,Delphi 7,提供了很多的数据库组件,使得开发数据库应用程序变得相当容易。,Delphi 7,中为了创建数据库应用程序需要使用,BDE,数据集组件、数据访问组件和数据控制组件。,Delphi,使用可视化的组件创建数据库应用程序,跟创建其它的非数据库应用程序一样,数据库组件都具备一定的属性,程序设计人员可以在设计过程中设置组件的多种属性,也可以在程序运行过程中通过程序来设置组件的各种属性。在,Delphi,组件面板上的,Data 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,组件主要用于将主从关系的数据嵌套在子数据库表格中。,BDEClientDataSet,组件将,ClientDataSet,与,BDE,相关的数据访问组件结合起来。,9.4,常用数据库组件,1,TTable,组件,(1),用途,TTable,组件是使用频率最高的数据库组件,该组件可以建立数据库应用程序,(2),主要属性, Active,属性,DatabaseName,属性,TableName,属性,TableType,属性, Exclusive,属性,9.4,常用数据库组件,(3),与表的创建与删除相关的属性与方法, Fields,属性,FieldDefs,属性,CreateTable,方法,DeleteTable,方法,RenameTable,方法,(4),与数据库表索引相关的属性和方法,IndexName,属性,IndexFieldCount,属性和,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,方法,SetRecords,方法,EmptyTable,方法,9.4,常用数据库组件,【,例,9-4】,在例,9-3,所创建的数据库基础上使用,Table,组件实现查询、插入、删除、更新的功能。,查询代码编写,单击设计界面中的“查询”按钮,查询,employees.db,数据库表中的记录。,Delphi,提供了多种实现查询功能的方法:,调用,Locate,方法,在“查询”按钮的,Onclick,事件的处理程序中加入如下代码:,procedure TForm1.Button1Click(Sender:,TObject,);,begin,Table1.Locate(,姓名,丁一,); /,查询姓名为“丁一”的记录,end;,9.4,常用数据库组件,调用,GotoKey,方法,在查询之前,要确保查询的字段是关键字段或辅助索引字段,如果要查询的字段不是关键字段或辅助索引字段,则查询过程失败,系统会报错。,例如,在“查询”按钮的,Onclick,事件的处理程序中加入如下代码:,procedure TForm1.Button1Click(Sender:,TObject,);,begin,Table1.IndexFieldNames:=,职工号,; /,指定查询字段,Table1.SetKey; /,将,Table1,置为查询状态,Table1.Fields0.AsString:=111001; /,指定查询字段值,Table1.GotoKey; /,进行查询,end;,9.4,常用数据库组件,插入功能实现,用,Insert,方法实现插入功能,在“插入”按钮的,Onclick,事件的处理程序中加入如下代码:,procedure TForm1.Button2Click(Sender:,TObject,);,begin,Table1.Insert; /,设置为插入状态,Table1.Fields0.AsString:=111002; /,设置要插入的值,Table1.Post; /,将插入的记录写回数据库,End;,9.4,常用数据库组件,用,Append,方法实现插入功能,在“插入”按钮的,Onclick,事件的处理程序中加入如下代码:,(*,实现在尾部插入一条职工号为“,111003”,的记录*,),procedure TForm1.Button2Click(Sender:,TObject,);,begin,Table1.Append; /,设置为插入状态,Table1.Fields0.AsString:=111003; /,设置要插入的值,Table1.Post; /,将插入的记录写回数据库,End;,9.4,常用数据库组件,(4),删除功能实现,在“删除”按钮的,Onclick,事件的处理程序中加入如下代码:,procedure TForm1.Button3Click(Sender:,TObject,);,begin,Table1.Delete; /,删除记录指针指向的记录,End;,(5),更新功能实现,在“更新”按钮的,Onclick,事件处理程序中加入如下代码:,procedure TForm1.Button3Click(Sender:,TObject,);,begin,Table1.Edit; /,将,Table,控件置成编辑状态,Table1.Fields0.AsString:=,王芳,Table1.Post; /,将修改后的记录写回数据库,End;,9.4,常用数据库组件,2,TQuery,组件,(1),用途,Delphi,中的另一个重要的数据集组件是,TQuery,,它需要使用,SQL,语言命令来进行查询。,Delphi,通过,TQuery,组件实现了对,SQL,语言的支持,在,Delphi,开发的数据库应用程序中,,SQL,语句通过,TQuery,组件传递到要访问的数据库系统的数据库引擎上,由数据库引擎具体执行,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,组件的,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,语句。如果希望返回查询结果,调用,Open,,如果不需要返回查询结果,调用,ExecSQL,。在调用,Open,或,ExecSQL,之前,最好先调用,Prepare,方法通过服务器做好准备。执行,SQL,所返回的查询结果实际上是数据集中满足特定条件的记录所组成的子集,数据库表格只显示符合特定条件的记录。,在程序运行过程中,首先调用,TQuery,组件的,Close,方法关闭当前的,SQL,调用,然后调用,SQL,的,Clear,方法清除,SQL,属性,并使用,SQL,的,Add,方法增加新的,SQL,命令到,SQL,属性中。,9.4,常用数据库组件,在程序运行过程中,首先调用,TQuery,组件的,Close,方法关闭当前的,SQL,调用,然后调用,SQL,的,Clear,方法清除,SQL,属性,并使用,SQL,的,Add,方法增加新的,SQL,命令到,SQL,属性中。,由于在程序运行过程中,程序设计人员是无法确定,TQuery,组件中的,SQL,语句是否会返回一个查询结果,所以执行,SQL,语句时经常在,TryExcept,模块中。一般形式如下:,Try,Queryl.Open,;,Except,Query1.ExecSQL;,end;,9.4,常用数据库组件,如果使用动态,SQL,语句,首先调用,Prepare,方法,给动态,SQL,语句中的参数赋值,然后再调用,Open,方法或,ExecSQL,方法。调用,Prepare,方法并不是必须的,但是对于要多次执行,TQuery,组件中,SQL,属性中的动态,SQL,语句,调用,Prepare,可以大大提高,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,子句指定要查询的数据库表。,WHERE,子句定义了查询条件,必须紧跟,FROM,子句之后,其中的,子句是一个逻辑表达式。,ORDER BY,子句对查询的记录结果按照指定字段值进行排序。,GROUP BY,子句对查询的记录结果按照指定字段值进行分组,另外,对表数据进行查询时,经常需要对结果进行汇总或计算,,SQL,语言的聚集函数用于计算表中的数据,返回单个计算结果。常用的聚集函数主要有以下几种:,记录数目,COUNT,求和,SUM,平均值,AVG,最大值,MAX,最小值,MIN,9.4,常用数据库组件,在“查询”按钮的,Onclick,事件处理程序中加入如下代码:,procedure TForm1.Button1Click(Sender:,TObject,);,begin,Query1.Close; /,修改,SQL,语句之前先关闭,Query,组件,Query1.SQL.Clear; /,清除旧的,SQL,语句,Query1.SQL.Add(SELECT * FROM,employees.db,); /,添加新的,SQL,语句,Query1.SQL.Add(WHERE,姓名,=,丁一,);,Query1.Open; /,执行,SQL,语句,end;,9.4,常用数据库组件,插入功能的实现,用,TQuery,组件实现插入功能的,SQL,语句的基本格式如下:,INSERT INTO,(),VALUES,该命令的功能是在,指定的数据库表中,插入记录。指定了插入记录中要赋值的字段,,VALUES,(,)指定了要给,中的字段所赋的值。,TQuery,组件中执行插入功能的,SQL,语句要用,ExecSQL,方法执行。,9.4,常用数据库组件,在“插入”按钮的,Onclick,事件处理程序中加入如下代码:,procedure TForm1.Button2Click(Sender:,TObject,);,begin,Query1.Close; /,修改,SQL,语句之前先关闭,Query,组件,Query1.SQL.Clear; /,清除旧的,SQL,语句,Query1.SQL.Add(INSERT INTO,employees.db,);,Query1.SQL.Add(,姓名,);,Query1.SQL.Add(VALUES(,李宏伟,);,(*,对于字符串中出现的单引号要进行特殊处理,因此字符型数据,要用两对单引号括起来,),Query1.ExecSQL; /,显示插入的结果,Query1.Close;,Query1.SQL.Clear;,Query1.SQL.Add(SELECT * FROM,employees.db,);,Query1.Open;,end;,9.4,常用数据库组件,删除功能的实现,用,TQuery,组件实现删除功能的,SQL,语句的基本格式如下:,DELETE FROM ,WHERE ,该语句的功能是从,指定的数据库表中删除满足条件的记录,若省略,WHERE,子句,表示删除所有的记录。,TQuery,组件中执行删除功能的,SQL,语句要用,ExecSQL,方法执行。,9.4,常用数据库组件,在“删除”按钮的,Onclick,事件处理程序中加入如下代码:,procedure TForm1.Button3Click(Sender:,TObject,);,begin,Query1.Close;,Query1.SQL.Clear;,Query1.SQL.Add(DELETE FROM,employees.db,);,Query1.SQL.Add(WHERE,姓名,=,李宏伟,);,Query1.ExecSQL;,Query1.Close;,Query1.SQL.Clear;,Query1.SQL.Add(SELECT * FROM,employees.db,);,Query1.Open;,end;,9.4,常用数据库组件,更新功能的实现,用,TQuery,组件实现更新功能的,SQL,语句的基本格式如下:,UPDATE ,SET =,WHERE ,该语句的功能是将,指定的数据库表中满足条件的记录中的,SET,子句的,所指定的字段的值设置为,。若省略,WHERE,子句,表示更新所有的记录的指定字段的值。,TQuery,组件中执行更新功能的,SQL,语句要用,ExecSQL,方法执行。,9.4,常用数据库组件,在“更新”按钮的,Onclick,事件的处理程序中加入如下代码:,procedure TForm1.Button4Click(Sender:,TObject,);,begin,Query1.Close;,Query1.SQL.Clear;,Query1.SQL.Add(UPDATE,employees.db,);,Query1.SQL.Add(SET,基本工资,=,基本工资,+200);,Query1.SQL.Add(WHERE,姓名,=,杨帆,);,Query1.ExecSQL;,Query1.Close;,Query1.SQL.Clear;,Query1.SQL.Add(SELECT * FROM,employees.db,);,Query1.Open;,end;,9.4,常用数据库组件,3.,其他的,BDE,组件,(1),TBatchMove,组件,TBatchMove,组件可以从数据集中成批地拷贝、删除、更新、添加数据到另外的一个数据表中。经常被用来将桌面数据库的数据升级到,SQL,服务器上,或者保存查询后的数据用于分析。,(2),TSession,组件,TSession,组件连接了数据库引擎,BDE,和应用程序内的,Database,。在每一个数据库应用程序运行时,,Delphi,会自动创建一个默认的,TSesssion,组件:,Session,。在应用程序中加入新的数据访问组件和数据集组件时,这些组件会自动地处于默认的,BDE,会话期对象,即,Session,的控制之下,对于简单的数据库应用程序只需要使用这个默认的,TSession,组件即可。此外,,TSession,组件还能提供访问,Paradox,表和,dBASE,表的口令,指定网络控制文件所在的目录,控制数据表的连接等功能。,9.4,常用数据库组件,(3),TNestedTable,组件,通过,TNestedTable,组件可以访问嵌套数据集中的数据。它实现的功能类似于,Table,组件,唯一不同的是,TNestedTable,组件访问的数据是存储在嵌套的数据表格中的。,9.4,常用数据库组件,9.4.2,数据访问(,Data Access,)组件,数据访问组件建立了数据集组件和数据控制组件之间的桥梁,它是编写数据库应用程序,所必需的;在,Delphi 7,中数据访问组件位于组件面板的,Data Access,选项卡上,,9.4,常用数据库组件,用途,TDataSource,组件在数据库应用程序编写中经常使用,是连接数据访问组件,TTable,、,TQuery,等数据集组件和,TDBGfid,、,TDImage,等数据控制组件之间的桥梁,2,主要属性,(1)AutoEdit,属性,(2),DataSet,属性,(3) Enabled,属性,(4) Edit,方法,(5),IsLinkedTo,方法,9.4,常用数据库组件,9.4.3,数据控制(,Data Controls,)组件,数据控制组件位于组件面板的,Data Controls,选项卡上,它们主要用于设计数据库应用程序的用户界面,对数据库中的数据进行浏览、编辑、插入、删除等操作。数据控制组件既能把数据库中的数据显示到窗口中,又可以将其自身经过修改的数据写回到数据库中。,数据控制组件使用相当简单,一般只需设置组件的,DataSource,属性为指定的数据访问组件,如果需要的话,再设置数据控制组件的,DataField,属性,以说明需要显示的数据表中的字段。,9.4,常用数据库组件,1.,TDBGrid,组件,(1),用途,TDBGrid,组件是最常用的采用网格的方式显示数据库表中指定字段的数据的组件,它通过,DataSource,属性与,TTable,组件建立连接,显示数据库表中的数据,并能够让用户编辑这些数据。,(2),主要属性,DataSource,属性, Columns,属性,FixedColor,属性, Options,属性, Title Font,属性,9.4,常用数据库组件,2,TDBText,组件,TDBText,组件类似于,Standard,选项卡中的,Lable,组件,是一个只读的数据控制组件,主要用于显示数据集中字段类型为文本型的字段值。该组件显示的是数据表中当前记录的指定字段的值,因而它显示的内容也是动态的,在其中显示的内容随着记录指针的移动而变化。但该组件不能用于编辑数据库中的数据。,9.4,常用数据库组件,3.,TDBEdit,组件,(1),用途,TDBEdit,组件是用于显示编辑数据表中当前记录各个字段值的数据浏览组件,在应用程序中,常用一个,TDBEdit,组件来对应表中的一个字段,通过设置,TDBEdit,组件的,DataSource,、,DataField,属性便可以为,TDBEdit,组件指定表中相应的字段。,(2),主要属性,AutoSelect,属性,CharCase,属性,PasswordChar,属性,ReadOnly,属性,9.4,常用数据库组件,4.,TDBNavigator,组件,(1),用途,TDBNavigator,组件主要用来执行在数据集中浏览数据和编辑数据的操作,如记录定位、拖入记录、删除记录、保存用户对记录的修改等。它提供了一组简单明了的控制按钮,如图,9-21,所示,用户单击其中的按钮可以向前向后移动记录指针、插入记录、修改已存在的记录、投寄对记录的修改、取消修改、删除记录以及刷新记录的显示等。,(2),主要属性,DataSource,属性,VisibleButtons,属性, Hints,属性,ShowHint,属性, Visible,属性,9.4,常用数据库组件,9.4.4 ADO,组件,ADO,(,ActiveX Data Objects,)是,Microsoft,公司面向各种数据的高层接口,,ADO,组件这种层次接口被称为,OLE DB,。,ADO,是在,Microsoft,的数据访问技术,OLE DB,上实现的。,OLE DB,访问速度快,可以访问的数据类型丰富,包括对关系型数据库、非关系型数据库、电子邮件、文件系统及定制事务对象的访问。,ADO,组件编写的程序,可脱离,Borland,的,BDE,,数据控制组件在直接使用,ADO,组件,在使用,ADO,组件编写的程序,必须正确安装,ADO/OLE DB,。,9.4,常用数据库组件,ADO,组件中有三个核心组件分别是用于数据库连接的,TADOConnection,组件、用于执行,SQL,命令的,TADOCommand,组件和用于执行返回结果集合的请求的,TADODataSet,组件。还有三个与,BDE,兼容的,TADOTable,、,TADOQuery,、,TADOStoredProc,组件,可以用它们将,BDE,的应用程序移植到,ADO,中。另外有一个,TRDSConnection,组件,用于访问远程多级应用程序中的数据。,9.5,数据库应用程序综合实例,9.5.1,总体设计,人事管理系统就是要实现对单位职工进行管理,整个系统由人事档案管理和部门信息管理组成,包括信息输入、添加、修改、删除、查询等功能。,9.5,数据库应用程序综合实例,9.5,数据库应用程序综合实例,9.5.2,数据库设计,数据库设计是系统实现的基础,分为概念设计、逻辑设计和物理设计三步,本系统共有两个数据库:,Department,和,Employees,。,9.5,数据库应用程序综合实例,9.5.3,程序设计,1,主界面设计,本系统采用多页面的方法来实现,系统主界面如图,9-25,所示,2,子模块的设计,本系统共包括三个子模块:职工管理模块、部门管理模块和信息查询模块。其界面分别如图,9-25,、图,9-26,和图,9-27,所示。各模块的功能实现基本相似,这里以职工管理模块、部门管理模块的部分按钮代码以及信息查询模块的查询功能代码为例来介绍各子模块的具体实现方法,其他模块的实现请读者自行完成。,9.5,数据库应用程序综合实例,(1),界面设计,(2),编写代码,职工管理模块“退出”按钮的,OnClick,事件处理代码如下:,procedure TForm1.BitBtn1Click(Sender:,TObject,);,begin,close;,end;,9.5,数据库应用程序综合实例,部门管理模块“添加”按钮的,OnClick,事件处理代码如下:,procedure TForm1.BitBtn6Click(Sender:,TObject,);,begin,BitBtn2.Enabled:=false;,BitBtn3.Enabled:=false;,BitBtn4.Enabled:=false;,BitBtn5.Enabled:=false;,BitBtn6.Enabled:=false;,BitBtn7.Enabled:=false;,BitBtn8.Enabled:=false;,BitBtn9.Enabled:=True;,BitBtn10.Enabled:=True;,Table2.Append;,end;,9.5,数据库应用程序综合实例,“修改”按钮的,OnClick,事件处理代码如下:,procedure TForm1.BitBtn7Click(Sender:,TObject,);,begin,BitBtn2.Enabled:=false;,BitBtn3.Enabled:=false;,BitBtn4.Enabled:=false;,BitBtn5.Enabled:=false;,BitBtn6.Enabled:=false;,BitBtn7.Enabled:=false;,BitBtn8.Enabled:=false;,BitBtn9.Enabled:=True;,BitBtn10.Enabled:=True;,Table2.Edit;,end;,9.5,数据库应用程序综合实例,“删除”按钮的,OnClick,事件处理代码如下:,procedure TForm1.BitBtn8Click(Sender:,TObject,);,begin,if Table2.IsEmpty then,MessageDlg,( ,当前无数据,请确认,!,mtError,mbOk,0),else,begin,if,MessageDlg,(,确认删除当前记录吗?,mtConfirmation,mbOK,mbCancel,0)=,mrOK,then,begin,Table2.Delete;,Showmessage,(,该记录已被删除,);,Table2.First;,end;,end;,end;,9.5,数据库应用程序综合实例,信息查询模块“职工查询”按钮的,OnClick,事件处理代码如下:,procedure TForm1.BitBtn11Click(Sender:,TObject,);,Var,StrSQL,: string;,begin,Query1.Close;,Query1.SQL.Clear;,case ComboBox1.ItemIndex of,-1,10:,strSQL,:=Select * from,Employees.db,;,0,1,2,4,5,6,8:,strSQL,:=Select * from Employees where +,ComboBox1.Text+=+Edit1.Text+;,7:,strSQL,:=Select * from Employees where +,ComboBox1.Text+=+Edit1.Text;,else,strSQL,:=Select * from Employees where +ComboBox1.Text+=,+chr(35)+Edit1.Text+chr(35);,end;,9.5,数据库应用程序综合实例,Query1.SQL.Add(strSQL);,QUERY1.Prepare;,Query1.Open;,if Query1.RecordCount=0 then,ShowMessage,(,指定记录没有找到,);,DBGrid3.DataSource:=DataSource3;,Edit1.Text:=;,end;,“部门查询”按钮的,OnClick,事件处理代码如下:,procedure TForm1.BitBtn12Click(Sender:,TObject,);,Var,StrSQL,: string;,9.5,数据库应用程序综合实例,begin,Query1.Close;,Query1.SQL.Clear;,case ComboBox2.ItemIndex of,-1,4 :,strSQL,:=Select * from,Department.db,else,strSQL,:=Select * from,Department.db,where +,ComboBox2.Text+=+Edit2.Text+;,end;,Query1.SQL.Add(strSQL);,QUERY1.Prepare;,Query1.Open;,if Query1.RecordCount=0 then,ShowMessage,(,指定记录没有找到,);,DBGrid3.DataSource:=DataSource3;,Edit2.Text:=;,end;,习 题,什么是数据库,什么是数据库管理系统,什么是数据库系统?,简述,BDE,可以使用的数据源有哪些类型?,Delphi,开发的数据库应用程序有哪几种结构?,简述,Delphi,中数据库、数据表的创建过程。,简述,Delphi,中常用的数据库组件有哪些,其基本功能是什么?,简述,Delphi,数据库应用程序的开发步骤。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!