浙大09春学期《数据库应用程序设计》期末考试复习指导.docx

上传人:b****5 文档编号:8167582 上传时间:2023-01-29 格式:DOCX 页数:28 大小:2.71MB
下载 相关 举报
浙大09春学期《数据库应用程序设计》期末考试复习指导.docx_第1页
第1页 / 共28页
浙大09春学期《数据库应用程序设计》期末考试复习指导.docx_第2页
第2页 / 共28页
浙大09春学期《数据库应用程序设计》期末考试复习指导.docx_第3页
第3页 / 共28页
浙大09春学期《数据库应用程序设计》期末考试复习指导.docx_第4页
第4页 / 共28页
浙大09春学期《数据库应用程序设计》期末考试复习指导.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

浙大09春学期《数据库应用程序设计》期末考试复习指导.docx

《浙大09春学期《数据库应用程序设计》期末考试复习指导.docx》由会员分享,可在线阅读,更多相关《浙大09春学期《数据库应用程序设计》期末考试复习指导.docx(28页珍藏版)》请在冰豆网上搜索。

浙大09春学期《数据库应用程序设计》期末考试复习指导.docx

浙大09春学期《数据库应用程序设计》期末考试复习指导

浙大09春学期《数据库应用程序设计》期末考试复习指导

一、卷面内容:

1.填空题,共10道题,20个空,每空2分,共40分;

2.选择题,单选,20道题,每题1分,共20分;

3.缩略语解释:

如SQL,ADO等之类的名词进行解释;此类题,解答方式分为两个部分:

首先要把缩略语的全称都写出来,之后要对缩略语进行解释。

4.编程题,共6道题,每题5分,共30分;

分为两种类型,一是代码的编写;给予命题,用代码来编写一段

程序,实现此命题;二是阅读,用注释和说明的方式,解释关键语

句的含义和整段代码的含义。

5.改错题,给一段代码或者不对或者用另外一种形式进行改写等等

说明:

考试前5章,内容不做具体要求。

也就是说,考试不会专门出前5章的内容,但是后面的内容会用到前面的内容,除非自己完全掌握了前面的内容,还是要看一下的。

二、复习内容

1、为什么选择Delphi

(1)数据库应用程序设计主要有哪些分类

(2)各种数据库访问的主要特点怎样

(3)为什么选择Delphi

(4)支持.NeT

--Delphi开始支持.NET

(5)跨平台

--Kylix集成环境与Delphi集成环境

(6)独立的、独特的软件产品

(7)简单易用

2.Delphi7访问数据库的基本方法

(1)BDE

—BorlandDatabaseEngine

—Borland公司开发的数据库引擎

—把应用程序与具体数据库隔开

(2)ADO

—ActiveXDataObject

—Microsoft公司设计的数据访问计数

—通过OLEDB底层数据访问接口,可以访问数据库、电子邮件系统及自定义的商业对象(如目录服务)

3.Delphi7质层的数据库类型

(1)dBase数据库。

可通过DatabaseDesktop建立

(2)Paradox数据库。

可通过DatabaseDesktop建立

(3)ASCII码文件

(4)本地InterBase服务器

(5)Access数据库

(6)各种数据库服务器:

主要有MicrosoftSQLServer,OracleSybase,Interbase等

(7)通过ODBC与其他数据库连接

4.开发单层数据库应用程序的方法

(1)在不使用BDE与BDE数据集,也不使用IAppServer接口的情况下,直接用数库文件作为数据源,在数据控制组件的配合下进行数据库应用程序开发,成为基于文件的单层数据应用程序。

(2)提供了TClientDataSet组件用于实现此种数据库应用程序。

(3)使用场合较少

5.开发两层数控应用程序的方法

(1)基于BDE的两层数据库应用程序

—客户机需要安装BDE

—Borland对BDE的分布不限制,不收费

(2)基于ADO的两层给数据库应用程序

—需要安装MDAC(MicrosoftDataAccessComponents)

—Delphi7自带MDAC

—MDAC包括DAO(数据存取对象)、RDO(远程数据对象)、ADO(ActiveX数据对象)、ODBC(开放数据库连接)、RDS(远程数据库服务)等

4.基于ADO的两层数据库应用程序体系结构

虚线以上为客户机端,虚线以下为服务器端

基于DataSnap技术的多层数据库应用程序

配置BDE,dbExpress等数据访问功能只需在应用服务器上进行,而与客户机无关。

逻辑三层结构的数据库应用程序

数据模块包括TDataSet,TQery,TStoredProc三个组件。

ODBC的概念

(1)各DBMS定义的SQL无需完全相通

(2)访问不同的DMBS,须采用不同的SQL语句(尽管差别不大),但最小的差别也可能导致语句解释问题

(3)微软推出ODBC(OpenDatabaseConnectivity),开放数据库互联

(4)应用数据通信方法、数据传输协议、DBMS等多种技术定义一个标准的接口协议,允许应用程序以SQL为数据存取标准,存取不同DBMS管理的数据。

(5)ODBC提供API(ApplicationInterface)

数据源与ODBC练级

(1)创建数据库源名DSN(DataSourceName)

(2)选择DSN类型

(3)创建ODBC名称,以备引用

(4)选择登录方式

(5)输入登录用户名和口令

(6)选择ODBC控制的数据库

(7)确定配置完成

(8)测试连通

(9)完成配置

开发多层数据库应用程序的方法

(1)基于DataSnap技术的多层数据库应用程序

◆原先称MIDAS技术

◆多了应用服务器,可运行数据提供者

◆客户机不需要BDE等环境

(2)基于BusinessBrokerServe技术的多层数据库应用程序

(3)逻辑三层结构的数据库应用程序

◆不是真正意义的三层数据库应用程序

◆数据库模块运行时位于客户端

6.ODBC的部件及其层次关系

(1)数据源

通过ODC管理器注册的一个数据源名称,应用程序数据源名就可访问具体的数据库,而使中间的细节变得透明。

(2)应用程序(Application)

负责调用ODBC函数来提交SQL语句,提取结果。

(3)ODBC管理器(Administrator)

位于Windows控制面板的32位ODBC内,其主要任务是管理ODBC驱动程序和数据源。

使用DatabaseDesktop进行数据库管理

(1)DatabaseDesktop的作用

(2)工作目录和私有目录的设定

(3)数据库别名的建立

(4)数据库表的建立

DatabaseDesktop的作用

(1)DatabaseDesktop(数据库桌面)是Delphi自带的一个数据库管理工具,利用它可以完成数据库的创建和维护、别名的创建和维护,SQL文件的创建及SQL命令的执行等功能。

(2)创建和维护数据库

需安装相应的数据库管理系统或驱动程序,像Paradox、dBase等自带

数据库可以是一个文件(Access),也可以是一个目录(如Paradoc)

(3)维护数据库别名

数据库别名就是数据表所在的子目录或数据库文件名的替代名称,可以隐藏数据库所在的路径的文件名称

(4)创建SQL文件和执行SQL命令

可建立和执行QBE查询

主界面划分

Delphi程序运行界面

ObjectInspector(对象观察器)

(1)设置属性

(2)编制控件的事件代码

7.ObjectTreeView(对象树浏览器)

(1)观察对象层次关系

(2)明确对象引用关系

Form1.Button1

Form1.DBGrid1

8.组件模块及组件设置

用BDE组件开发的一般方法

9.常用BDE组件简介

TTable组件

(1)TTable组件的常用属性

(2)TTable组件的常用方法

(3)TTable组件的常用事件

21.TTable组件的常用属性

•DatabaseName:

用于指定所连接的物理数据库的名字,可以是数据库别名、数据库表文件所在路径。

•TableName:

用于设定所操作的数据表的名称,若DatabaseName正确设置,则有列表框列示相应数据库中的所有表。

•TableType:

用于设定与之连接的确良数据库表的类型,当其值为ttDefault时,数据库表类型与文件扩展名关联。

•Active:

打开(True)或关闭(False)Ttable组件形成的数据集合,是逻辑型属性。

•ReadOnly:

用于决定数据集是否可修改(True为只读),逻辑型属性。

•Modified:

只读逻辑型属性,只在程序运行中使用,表示数据集是否修改过。

•FieldCount:

只读属性,用于返回所连接表中的字段个数。

•RecordCount:

只读属性,用于返回所连接表中的记录个数。

•RecNo:

只读属性,用于返回当前记录号,即记录指针位置。

•RecordSize:

只读属性,用于返回记录的长度。

•Fields:

数组属性,用于访问数据集中的字段,Fields[0]表示第一个字段,Fields[1]表示第二个字段,以此类推。

也可用FieldByName引用字段。

•Bof:

只读逻辑型属性,用于表示是否指向数据集的第一条记录。

•Eof:

只读逻辑型属性,用于表示是否指向数据集的最后一条记录。

•Filter:

用于确定过滤器字符串,数据集中所有符合过滤条件的记录才能被访问。

例:

职称=‘讲师’

•CachedUpdates:

用于决定是否对数据集应用缓存更新。

TTable组件的常用方法

(1)FieldByName方法

(2)记录指针移动方法

a)First方法

b)Last方法

c)Prior方法

d)Next方法

e)MoveBy方法

(3)查询记录的相关方法

f)GotoKey

g)FindKey

10.数据操作相关方法

a)Append方法

b)Insert方法

c)Edit方法

d)Post方法

e)Refresh方法

11.TTable组件的常用事件

(1)BeforeXXX事件

(2)AfterXXX事件

(3)OnXXX事件

24.查询记录的相关方法

•GotoKey

–精确查找

–确保要查找的字段是关键字或已经为它定义了辅助索引,并保证TTable组件的属性列表中有关键字段名或辅助索引名。

–通过调用GotoKey方法,把要查找的Table组件置成查找模式。

–把查找值送进被查找的Field的查找缓冲区。

–调用TTable组件的GotoKey方法,并测试它的返回值以判断查找是否成立。

–True:

定位记录指针;False:

记录指针不变

•GotoNearest方法用于模糊查找

•FindKey

–FunctionFindKey(ConstKeyValues:

arrayofconst):

Boolean;

•FindNearest用于模糊查找

25.数据操作相关方法

•Append方法

–在数据表的末尾追加一条空记录,并将记录指针指向该记录

•Insert方法

–在当前记录之后插入一条空记录,并将记录指针指向该记录

•Edit方法

–将数据表置于编辑状态,此时用户可以修改数据表中的数据

•Delete方法

–删除当前记录,并将指针移向下一条记录

•Post方法

–把对数据表数据的修改结果和新添加的数据保存到数据库中

•Refresh方法

–根据数据表中的数据刷新界面,即重新从数据表中获取数据

•Cancel方法

–取消对数据表中修改和添加

•EmptyTable

–将数据表清空,即删除数据表中的所有记录

26.BeforeXXX事件

•BeforeCancel:

取消操作之前触发,调用Cancel方法第一个动作

•BeforeClose:

关闭数据集之前触发

•BeforeDelete:

删除操作之前触发,调用Delete方法的第一个动作

•BeforeEdit:

数据集置为编辑状态前触发,调用Edit方法的第一个动作

•BeforeInsert:

插入或添加前触发,调用Insert或Append方法的第一个动作

•BeforeOpen:

数据集打开前触发

•BeforePost:

更新操作之前触发,调用Post方法的第一个动作

27示例说明

•删除的完整性验证:

如果必修课成绩表中有当前学生的选课,则不允许删除当前记录(限制删除)。

•问题:

如果要达到级联删除的效果,怎么做?

•提示功能:

当执行Post成功后,将显示“保存成功”的提示信息

•ProcedureTform1.tableBeforeDelete(DataSet:

TDataSet);

•Begin

•try

•table2.indexName:

=‘XH’;//学号作业索引名

•iftable2.findkey([DataSet.fieldbyname(‘学号’).Asstring])then

•raiseException.Create(‘不能删除记录’);

•except

•onE:

EDBEngineErrordo

•showmessage(‘不能删除该记录’);

•end;

•End;

•ProcedureTform1.table1AfterPost(DataSet:

TDataSet);

•Begin

•showmessage(‘数据保存成功’);

End;

28数据控制组件

•常用属性和使用方法

•常用数据控制组件介绍

–TDBNavigator组件

–TDBGrid组件

–TDBListBox/TDBComboBox组件

–TDBLookUpListBox组件

–TDBLookUpComboBox组件

–TDBImage组件

–TDBCheckBox组件

–TDBRadioGroup组件

29常用属性

•要使数据控制组件显示数据库表的内容,一般只需要设置两个属性:

•DataSource:

设置与本组件相连的TDataSource组件。

可以在属性设置栏内选择当前Form可引用的所有TDataSource组件。

•DataField:

决定数据控制组件显示或修改的字段名,在确定数据源后(DataSource值设置后),即可在列表框中选择所有指定数据集中的字段。

30TDBLookUpListBox组件

•重要属性

–ListSource:

设置查找记录集,列表中的数据包含在该数据集中

–ListField:

设置查找字段,该属性可以是查找记录的一个或多个字段,如果是多个字段,则字段名之间用“;”隔开。

列表中填充的值来自于该属性指定的字段,如果不设置,KeyField指定的字段在就是查找字段

–KeyField:

用来从ListField属性选一个字段作为当前表和被查找表之间的查找匹配字段。

如果没有设置ListField属性,该属性还兼有设置查找字段的功能

•功能与TDBLookUpListBox组件功能基本一致,只不过它是一个下拉框组件。

•适用于外码值输入

31TDBImage组件

•用于显示图像字段内容

•重要属性

–DataSource

–DataField

–Stretch:

逻辑型属性,确定图像是否适应显示组件的大小

32TDBCheckBox组件

•重要属性

–ValueChecked:

字符串属性,当字段内容与该属性匹配时,该组件被选中

–ValueUnchecked:

字符串属性,当字段内容与该属性值匹配时,该组件被清除

•可以进行多值匹配,用“;”隔开

•DBCheckBox1.ValueChecked:

=‘True;Yes;正确;是;是的’;

•如果是以上设置,则字段的值只要是“True”、“Yes”、“正确”、“是”、“是的”中的一个,则DBCheckBox1组件将显现选中状态

•Delphi7规定,在多值情况下,只向数据库传回匹配列表中的第一个值

33TDBRadioGroup组件

•用于为单选按钮分组。

当组中的一个单选按钮被选中时,同组的其他所有单选按钮处于未被选中状态

•重要属性

–Columns:

设置排列单选按钮的列数,默认值是1,表示以一列的形式显示单选按钮

–Items:

设置单选按钮显示的文字,在“StringListEditor”中每行表示一个单选按钮的提示文字(即单选按钮的名称)

–Values:

设置单选按钮的值,与Items类似

•该组件可确保用户为字段输入一个值,也可用于显示取值有限的字段

33.主从表数据库应用程序的编写方法

•在一对多关系中,一方为主表,多方为从表。

•编写主从表应用程序,需要设置TTable组件的两个属性:

MasterSource和MasterFields。

前者指定作为主表的数据源,后者指定联系字段。

34通过程序创建数据库表

•涉及TTable组件的两个属性和一个方法

–FieldDefs:

列表属性,定义字段

–IndexDefs:

用于表的索引定义的列表

–CreateTable:

根据字段和索引的定义创建数据表

35TTable组件编程综合实例

•功能要求

–建表,对该表进行浏览和管理,不使用数据控制组件

–按钮的功能实现和状态设置:

记录指针移动;数据集增、删除、改、查询;提交和撤销。

状态设置确定按钮可用与否。

•设计要点

–由于不使用数据控制组件,需要编程显示数据集信息,并在适当时候写回数据库。

写两个过程分别用来显示当前记录,保存当前记录。

–采用FindKey方法查询

–按钮不可用,可使用button1.enabled=false;来实现

–界面上的组件能否输入数据可通过设置其ReadOnly或Enabled属性来实现。

分别写两个过程,一个令界面上组件不能输入,一个令界面上的组件能够输入。

36.其他BDE组件

•TStoredProc

–用于在基于BDE的数据库应用程序中访问数据库服务器的存储过程

–存储过程:

数据库服务器的一段程序。

并不是所有数据库服务器都支持存储过程,且各数据库的存储过程的编写也各有不同

•TDatabase

–用于建立与数据库之间的联系,并对数据库进行控制。

适用于:

•建立与数据库的永久连接

•数据库服务器要求用户的登录

•控制事务处理

•应用程序指定的BDE数据库别名

–在应用程序中,显式地为每一个数据库连接声明TDatabase组件不是必需的,若不声明的话,系统将生成一个带有默认参数的TDatabase对象。

37示例

•设置存储过程名称

•设置存储过程的参数

38TDatabase组件

•常用属性

–AliasName:

用于指明连接数据库的BDE别名。

设置该值,会将原先赋予DriverName的属性值被清空。

如果BDE数据库别名不存在,应用程序可通过指明数据库的DatabaseName、DriverName、Params属性来代替。

–Connected:

用于确定数据库连接是否是活动的。

–DatabaseName:

用于指定所用的数据库的名字。

若DatabaseName与已存在的BDE别名相同,则AliasName属性与DriverName属性不用设置;若不同,则应用程序可设置AliasName属性以指定数据库别名,也可设置DriverName与Params属性来指定驱动程序名和数据库的连接参数。

–Exclusive:

确定当前的应用程序可否独占访问数据库。

–KeepConnection:

确定在没有数据集打开的情况下应用程序是否保持数据库连接。

•常用事件

–ApplyUpdates:

向数据库服务器提交当前数据集的缓存更新,只在数据集的CachedUpdates属性为True时有意义。

–Close:

中断与数据库服务器的连接,并释放系统所占的资源,设置Connected值为False时同效。

注:

当KeepConnection值为False时且当前没有打开状态的数据集时,Close被自动调用。

–Commit:

用于提交事务,即永久保存当前事务的所有更新操作结果

–Rollback:

用于撤销事务,即撤销当前事务的更新操作,并结束事务

–StartTransaction:

用于在数据库服务器开始一个新的事务

39TQuery组件的作用’

•支持SQL语言的使用

•是BDE组件,作用与TTable组件基本一致

•不与具体的数据库表联系

•执行SQL语句,操作一个或多个表

•传递SQL语句到指定DBS的数据库引擎

40TQuery组件的属性和方法

•常用属性

–DatabaseName

–SQL

–Active

–Filter

•常用方法

–Open

–ExecSQL

–Close

Prepare

41DatabaseName属性

•用于与数据库建立连接,可以是某个数据库别名或数据表所在的路径。

43SQL属性

•字符串属性,存放用于执行的SQL语句

•输入合法的SQL语句后,将TQuery的Active属性置为True,或者调用其Open/ExecSQL方法来执行

•SQL属性可通过Add、Clear等方法来操作

–Add

–Clear

44.SQL属性的Add方法

•语法

Query.SQL.Add(SQLState);

•说明

–Query为TQuery组件的实例名

–SQLState为SQL语句的字符串形式

•例

Query1.SQL.Add(‘SELECT*FROMStudents’);

Query1.SQL.Add(‘WHERECno=’’01’’’);

•等效形式

Query1.SQL.Add(‘SELECT*FROMStudentsWHERECno=’’01’’’);

•45SQL属性的Clear方法

用于清除SQL属性的值

•TQuery组件可能被多次使用,为避免语句间的干扰,在输入SQL语句前使用

•例

–Query1.Close;

–Query1.SQL.Clear;

–Query1.SQL.Add(‘SELECT*FROMStudentsWHERECno=’’01’’’);

–Query1.Open;

46.Active属性

•用于执行SQL属性中存放的SQL语句

–保证SQL属性已经设置

–保证DatabaseName属性已经设置

–SQL语句语法正确

47.Filter属性

•字符串属性

•为数据集过滤器,存放逻辑表达式,只有符合逻辑表达式的记录才会出现在数据集中

•格式

•Query1.Filter:

=‘字段名=字段值’

•例:

筛选出职称为讲师的记录(以下示例适合出现在程序代码中)

•Query1.Filter:

=‘职称=‘’讲师‘’’;

•注意

–Filter属性要起作用,必须将Filtered属性置为True

在对象浏览器中设

48常用方法

•Open

–打开或激活TQuery组件的数据集

–SQL属性中存放的是SQL查询语句

–返回数据集

•ExecSQL

–执行SQL属性中的SQL语句

–用于执行SELECT查询时不返回数据集

–能够执行INSERT、UPDATE、DELETE等

•Close

–关闭数据集

•Prepare

–将带参数的SQL语句传递给相应的数据库引擎

–大大提高动态SQL语句的执行性能

•49关于Close方法

什么时候关闭数据集?

–数据集占用内存空间,当不使用数据集时及时关闭

–当TQuery组件派另外作用时,应先关闭先前的数据集(如果有的话)

•有些方法只能对打开的数据集

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1