浙大09春学期《数据库应用程序设计》期末考试复习指导Word格式.docx
- 文档编号:21303850
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:28
- 大小:2.71MB
浙大09春学期《数据库应用程序设计》期末考试复习指导Word格式.docx
《浙大09春学期《数据库应用程序设计》期末考试复习指导Word格式.docx》由会员分享,可在线阅读,更多相关《浙大09春学期《数据库应用程序设计》期末考试复习指导Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
(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:
•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:
=‘字段名=字段值’
•例:
筛选出职称为讲师的记录(以下示例适合出现在程序代码中)
=‘职称=‘’讲师‘’’;
•注意
–Filter属性要起作用,必须将Filtered属性置为True
在对象浏览器中设
48常用方法
•Open
–打开或激活TQuery组件的数据集
–SQL属性中存放的是SQL查询语句
–返回数据集
•ExecSQL
–执行SQL属性中的SQL语句
–用于执行SELECT查询时不返回数据集
–能够执行INSERT、UPDATE、DELETE等
•Close
–关闭数据集
•Prepare
–将带参数的SQL语句传递给相应的数据库引擎
–大大提高动态SQL语句的执行性能
•49关于Close方法
什么时候关闭数据集?
–数据集占用内存空间,当不使用数据集时及时关闭
–当TQuery组件派另外作用时,应先关闭先前的数据集(如果有的话)
•有些方法只能对打开的数据集
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库应用程序设计 浙大 09 学期 数据库 应用 程序设计 期末考试 复习 指导