数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法

上传人:E**** 文档编号:89488022 上传时间:2019-05-25 格式:PPT 页数:44 大小:1.20MB
返回 下载 相关 举报
数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法_第1页
第1页 / 共44页
数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法_第2页
第2页 / 共44页
数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法_第3页
第3页 / 共44页
数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法_第4页
第4页 / 共44页
数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法》由会员分享,可在线阅读,更多相关《数据库技术与应用(第二版)电子教案&参考答案-王小玲 第10章_Delphi的数据访问方法(44页珍藏版)》请在金锄头文库上搜索。

1、1,第10章,Delphi的数据访问方法,2/35,主要内容,10.1 Delphi 7.0的BDE组件 10.2 Delphi 7.0的ADO组件 10.3 数据库应用系统开发案例 小结,3/35,10.1 BDE组件,1. Delphi访问的数据库类型 (1)Jet数据库 (2)ISAM数据库 (3)ODBC数据库 2. Delphi数据库连接与访问,4/35,3. Delphi访问数据的接口 数据访问过程涉及三个组成部分: (1)数据提供者(Data Provider) (2)数据服务提供者(Data Service Provider) (3)数据使用者(Data Consumer) 数

2、据使用者和数据提供者之间的桥梁就是数据访问接口对象。 Delphi的三种数据访问接口 数据访问对象(DAO)。 远程数据对象(RDO) ActivcX数据对象(ADO) 这些接口分别代表了数据访问技术的不同发展阶段。,5/35,10.1.1 BDE组件页的基本介绍,10.1.2 TDataBase组件,对数据库进行访问之前必须使用TDatabase和数据库进行相应的连接,再对数据集进行相应的操作。 在下列场合需要用到TdataBase组件: (1)建立与数据库的永久连接 (2)数据库服务器要求用户的登录 (3)控制事务的处理 (4)应用程序制定的BDE数据库的别名,6/35,TDataBase

3、组件的属性,7/35,TDataBase组件的属性,8/35,TDataBase组件的属性,9/35,Connection属性 当Connection=True时,表明可以在不打开数据集的情况下与数据库相连。 当Connection=False时,表明TDataBase组件没有与任何数据库相连。 KeepConnection属性 当KeepConnection=True时,表示联系会被保持。 DataSets属性 应用程序可以通过使用DataSets属性值来访问与该TDatabase组件相连的所有处于打开状态的数据集。,10.1.3 Ttable组件,在Delphi中,访问数据的基本单元是数据

4、集对象。应用程序正是通过数据集组件来访问数据库的。 一个数据集对象就代表了数据库的一张表格,或者是访问数据库的一个查询或者存储过程。 TTable隶属于数据集组件,它从数据集继承而来,有着许多共同的属性、方法和事件。,10/35,Ttable组件的主要属性,11/35,Ttable组件的主要属性,12/35,Ttable组件的主要属性,13/35,Ttable组件的主要属性介绍,Active属性 Active属性是用来说明数据库文件的打开状态。应用Active属性来决定及设定一个数据集组件数据库数据之间的联系。它的属性值是一个布尔数(True/False)来表示的。 可以通过下列方法设置Act

5、ive的属性值为True。 (1)触发数据集的BeforeOpen事件 (2)设置数据集的状态为dsBrowse (3)在数据集中打开一个BDE记录指针 (4)触发数据集的AfterOpen事件 DatabaseName属性 DatabaseName属性是用来说明当前数据集的来源,即应用程序所利用的数据库的名字。它可以是BDE定义的数据库别名,如DBDEMOS;也可以是数据库文件,像Paradox和dBASE等文件所在的路径;还可以是由TDataBase组件定义的数据库名,14/35,Ttable组件的主要属性介绍,TableName属性 它是用来说明这个TTable组件所对应的是数据库中的哪

6、一张数据库表格。它和DatabaseName一样,实在设定阶段给定,它在DatabaseName设定之后给出。 Fields属性 Fields属性是用来指出数据集的字段列表。应用Fields属性可以访问数据库表格中的字段组合。 对于用户来说,利用Fields属性查询字段是非常有用的,有以下两点原因: (1)可以重温数据集的部分或者全部字段。 (2)可以对运行时内部的数据结构未知的隐藏表格进行操作。 Filter属性 Filter属性允许用户定义一个数据集过滤器。当过滤被数据集应用时,只有那些满足过滤器条件的记录才会被显示。,15/35,TTable组件的重要方法,16/35,TTable组件的

7、重要方法,17/35,18/35,TTable组件的重要方法,TTable组件方法的介绍,在TTable组件中实现数据库记录的查询依靠EditKey、FieldByName、FindKey、FindNearest、GotoKey、GotoNearest、Locate以及SetKey这些方法。下面分别介绍前5种具体的使用方法。 (1)EditKey 调用EditKey方法将数据集置于dsSetKey状态,也就是将TTable组件置于查询状态。同时,存储当前查询值缓冲区的当前内容。 (2)FieldByName FieldByName函数的基本格式如下: function FieldByName(

8、const FieldName:string):TFiled; FieldByName方法是根据一个特定的字段名查询一个字段。FieldName是一个已存在的字段名。,19/35,TTable组件方法的介绍,(3)FindKey FindKey函数的基本格式如下: function FindKey(const KeyValue:array of const):Boolean; FindKey方法相当于将设置表格组件的查找状态、设置查询以及在数据集中查询者三个步骤的功能集中在一个方法调用中实现。 (4)FindNearest FindNearest方法与FindKey方法很相似,不同之处在于Fi

9、ndNearest方法不要求精确查询。调用FindNearest方法将移动记录指针到数据集中语查询值精确符合的一个特定的记录或数据集中语查询值最相近的记录。,20/35,TTable组件方法的介绍,(5)GotoKey 调用GotoKey方法可以用来查询一条特定的记录,查询值是已经用SetKey或者EditKey方法与Fields属性值确定了的。 下面举例说明GotoKey的使用方法: procedure TForm1.Button1Click(Sender:TObject); begin with Table1 do begin EditKey; 将Table1置于查询状态 FieldByN

10、ame(Country).AsString:=China; 设置查询值 FieldByName(City).AsString:=Beijing; 设置查询值 GotoKey; 执行查询过程 end; end;,21/35,10.1.4 TQuery组件,TQuery是一个建立在SQL基础上,专门用于对数据库中的数据进行查询的组件。TQuery组件使用的是SQL语言,可以一次访问数据库的一个或者多个表格。TQuery组件访问的表格可以是在远程服务器的数据库中(例如:Sybase、SQLServer、Oracle、Infomix、DB2和InterBase),也可以上当地的表格(例如:Parado

11、x、dBASE、Access和FoxPro),还可以是ODBC数据库。 TQuery组件的重要性体现在: (1)可同时访问多张表格 (2)自动访问基本表格的子集,而不是访问所有的数据,22/35,10.1.4 TQuery组件,TQuery和TTable组件同属于数据集组件,它们有着许多相似的地方,但也有各自特殊的地方,下面为其主要区别: (1)TQuery组件主要功能是用来支持SQL语言访问本地或者远程数据库,所以,TQuery组件提供了一系列与TTable组件不同的属性、方法和事件。 (2)TQuery组件允许用户同时访问多个表,而TTable组件一次只能访问一个表格。 (3)TQuery

12、组件和TTable组件以不同的方式与SQL服务器进行交互,在执行数据定义语句(DDL)时,应当使用TQuery组件,而在以非集中方式访问数据库时应当使用TTable组件。 (4)TQuery组件访问的是表格中的特定数据内容;而TTable组件只有提供过滤或限定检索范围才能访问表格中的特定数据,否则TTable组件将访问表格中的全部数据。 如前所述,TQuery组件隶属于数据集组件,所有数据集组件具有的属性、方法和事件TQuery组件全部都有。,23/35,24/35,TQuery组件的特殊属性,25/35,TQuery组件的特殊属性,10.2.1 ADO组件的介绍,Delphi7.0提供了一套

13、采用ADO的组件。利用这些组件,用户可以与ADO数据库相联系,读取数据库中的数据并执行相应的操作。 大多数的ADO连接和数据集组件都是与基于BDE的连接和数据集组件相类似的。TADOConnection组件与基于BDE的应用程序的TDatabase组件相类似。TADOTable与TTable,TADOQuery与TQuery以及TADOStroedProc和TStroedProc之间都有这种类似的对应关系。 通过ADO数据集访问组件,可以不借助BDE引擎而是通过微软的OLE BD来访问更为广泛的数据库中的数据。ADO数据集访问组件与常用的数据访问组件是并列的关系,由于ADO数据集访问组件是从常

14、用数据访问组件发展而来,它的许多用法和常用数据访问组件都是相同的,26/35,10.2.2 TADOConnection组件,TADOConnection组件被用于建立一个与ADO数据存储的连接。为了执行命令、获取数据和操作数据,可以把多个ADO数据集件和命令组件与一个TADOConnection组件关联以共享链接。这个组件与基于BDE的程序中的TDataBase组件类似,下面为其重要的属性。,27/35,10.2.2 TADOConnection属性介绍,1. ConnectionString 通过设置ConnectionString来指明将ADO联系组件与数据集相连的必要信息。Connec

15、tionString的属性值包含了一个或者多个变元。如果是包含多个变元,那么它们之间要用冒号分开。例如: ADOConnection1.ConnectionString:= Provider=SQLOLEDB.1;Integrated Security=SSPI; Persist Security in + fo=false; Initial Catalog=pubs; Data Source=JK 在程序设计阶段,它可以通过激活对象观察器中该属性栏,从允许的ADO数据库连接中选取。该属性可以保存为文件后使用,在以后使用时只要在该属性栏中指明此文件名就可以在此使用该值。该属性值也可以包含用户的

16、身份和密码信息。当采用Open方法或通过ConnectionString显式的注册登录信息时,最好将LoginPrompt的属性值设为False,这样可以避免不必要的注册对话框。,28/35,29/35,10.2.2 TADOConnection属性介绍,2. Connected 设置Connected属性值为True以建立一个与ADO数据库之间的联系而不打开一个数据集。将Connected设置为False用来使一个联系失效。Connected的默认属性是False。 在应用程序中,可以通过检查Connected属性值来判断一个联系的当前状态。如果Connected属性值为True,表明当前联系时处于激活状态的。反之,如果Connected属性值为False,而另外一个属性KeepConnection的值也为False的话,表明该联系处于中断状态。 3. ConnectionObject 提供对ADO联系对象的直接访问。通过设置ConnectionObject属性可以取得参照ADO联系对象的直接联系。通过这种访问,应用程序可以直接使用与其对应

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号