资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
DELPHI程序设计基础教程 第十章 数据库编程基础 第十章 数据库编程基础t本章学习导读t10.1 Delphi数据库编程基础t10.2 数据源组件DataSourcet10.3 数据集组件DataSett10.4 BDE数据集组件t10.5 ADO组件t10.6 数据控制组件t本章小结DateC+面向对象程序设计程序设 计基础教程本章学习导读t Delphi最强大的地方就在于对数据库的 支持,Delphi可以访问多种数据库管理系统 的数据库,可以访问诸如Paradox、dBase、 本地InterBase服务器的数据库,也可以访问 如Oracle、Sybase等远程数据库服务器上的 数据库,或任何经ODBC可访问的数据库管理 系统中的数据库。t 本章首先对Delphi数据库的编程基础做 简单介绍,然后通过向导实际的建立一个数 据库应用程序,接着详细介绍常用的数据组 件的使用方法,最后介绍了通过ODBC访问数 据库的方法。DateC+面向对象程序设计程序设 计基础教程10.1 Delphi数据库编程基础数据库应用程序的构成一个数据库应用程序通常由两部分组成 :数据库访问链路和用户界面。Delphi采用 开放式数据库体系结构,允许用户采用任何 可获得的数据库引擎来创建数据库程序。Delphi使用可视化组件创建数据库应用 程序,和创建其他应用程序一样,数据库组 件同样具有一定的属性,程序员可以在设计 过程中设置组件的各种属性,也可以在程序 运行过程中通过代码来改变数据库组件的各 种属性。DateC+面向对象程序设计程序设 计基础教程10.1 Delphi数据库编程基础数据库引擎BDE、ADO简介1BDE数据库引擎BDE数据库引擎(Borland Database Engine)是Borland 公司推出的一种特有的用于访问数据库的机制,它可以让多个 程序共享,为应用程序与数据库的连接提供了灵活性和通用性 。BDE中封装了各种数据库驱动程序,可以访问本地数据库 Paradox、dBase、FoxPro和Access,通过SQL Links驱动程序又 可以访问远程数据库如InterBase、Oracle、Sql Server和DB2 。BDE支持的面很广,因为它可以连接到ODBC,而ODBC本身就可 以支持很多数据库,所以凡是ODBC可以连接的数据库,BDE都可 以连接。BDE的基本构思是把应用程序与具体的数据库隔离开,提 供一个统一的结构供用户使用,应用程序不再直接与具体的数 据库打交道,而是向BDE提出操作数据库的申请,由BDE具体操 作数据库,并把结果返回给应用程序。DateC+面向对象程序设计程序设 计基础教程10.1 Delphi数据库编程基础2ADO数据库引擎ADO数据库引擎(ActiveX Data Object)是微软 推出的一套数据库访问规范。它使应用程序能够通过 一种叫做OLE DB提供者(OLE DB Provider)的驱动 程序访问和操作数据库,OLE DB是微软定制的通向不同的数据源的低级应 用程序接口,OLE DB不仅包括微软的标准数据接口开 放数据库连通性(ODBC)的结构化问题语言能力,还 具有面向其他非SQL数据类型的通路。OLE DB也是一 个基于COM的数据访问规则和API函数的集合,并经过 了简化。实际上,ADO以ActiveX组件的形式封装了 OLE DB,以提供一个更友好方便的使用方式。DateC+面向对象程序设计程序设 计基础教程10.2 数据源组件DataSource数据源组件的属性数据源(DataSource)组件是连接数据集组件(如Table、Query、 StoredProc)与数据控制组件的桥梁,数据控制组件的DataSource属性指定数 据源,而数据源的DataSet属性指定数据集。使用DataSource组件,必须设置它 的DataSet属性,这是用来指明一个与当前数据源组件相联系的已知数据集组件 的名字,其它属性可以根据需要设定。数据源组件位于工具栏的Data Access选 项卡。 (1)DataSetDataSet属性是用来指明一个与当前数据源组件相联系的已存在的数据集组 件的名字。可以在设计阶段通过对象检视器来设置DataSet属性,也可以在运行 时通过代码修改该属性值。应用程序通过改变DataSet属性可以实现在同一个数 据控制组件中显示和编辑不同数据集组件中的数据。 (2)EnabledEnabled属性决定了与此数据源组件相连的数据控制组件是否显示数据,如 果Enabled属性值为默认值True,数据控制组件将显示数据,如果Enabled属性 值为False,则所有与此数据源组件相连的数据控制组件都将不显示任何数据。 (3)StateState属性是用来读取与此数据源组件相连的数据集组件的当前状态。数据 集组件的当前状态表明了能对数据集所做的操作。 DateC+面向对象程序设计程序设 计基础教程10.2 数据源组件DataSource数据源的方法DataSource组件的方法使用的比较少,只 需了解即可 (1)Create调用Create方法会创建一个DataSource组件 (2)EditEdit方法可使与数据源联系的数据集进入 编辑状态,可以通过修改数据源的AutoEdit 属性来实现该功能。DateC+面向对象程序设计程序设 计基础教程10.2 数据源组件DataSource数据源的常用事件 (1)OnDataChange当与该数据源组件相连的数据集的当前记录被编 辑后,应用程序转移到其它字段或者转移到其它记录 时触发该事件。由于该事件可被所有变化触发,所以 能确保数据控制组件反映当前数据集中的字段值。 (2)OnStateChange当与数据源连接的数据集状态发生改变时会触发 该事件。 (3)OnUpdateData当前的记录被更新时触发该事件,该事件在数据 集的Post方法之前被调用,一般用于在数据提交前进 行附加的处理和确认操作。DateC+面向对象程序设计程序设 计基础教程10.3 数据集组件DataSet数据集的打开与关闭在Delphi中,访问数据的基本单元是数据集对象,应用程 序也是通过数据集组件来访问数据库。一个数据集对象就代表 了数据库的一张表格,或者是访问数据库的一个查询或存储过 程。数据集组件DataSet是一个抽象类,定义了一些关于数据 集的基本属性、方法和事件。在应用程序中实际使用的是它的 子类Table、Query、StoredProc、ADOTable、ADOStoredProc等 组件。Table、Query和StoredProc组件位于工具栏的BDE选项卡 。Active属性用来说明数据库文件的打开状态。应用Active 属性来决定及设定一个数据集组件与数据库数据之间的关系。 当Active属性值为True时,表明数据集是打开的,数据集组件 可以对数据库进行读写操作,否则表示数据集是关闭的,数据 集组件不能从数据库读取数据,也不能向数据库中写数据。应 用程序在改变其它影响数据库状态或在应用程序中显示数据的 组件状态的属性之前,必须先将Active属性设置为False。DateC+面向对象程序设计程序设 计基础教程10.2 数据源组件DataSource对数据集的数据读、写都必须先打 开数据集,打开数据集有两种方法: (1)将Active属性值设置为True; (2)调用数据集的Open方法。关闭数据集同样有两种方法: (1)将Active属性值设置为False; (2)调用数据集的Close方法。DateC+面向对象程序设计程序设 计基础教程10.3 数据集组件DataSet数据集状态State属性是用来读取与此数据源 组件相连的数据集组件的当前状态。数 据集组件的当前状态表明了能对数据集 所做的操作。当Enabled属性值为False 或者没有指定DataSet属性的情况下, 无论数据集组件的实际状态如何, State属性总是为dsInactive。其它情 况下State属性值与数据集的当前状态 一致。 DateC+面向对象程序设计程序设 计基础教程10.3 数据集组件DataSet数据集的浏览(1)BOF和EOF属性BOF(Beginning of File)属性值为一个布尔值,表明当前记录 指针所处的位置是否为记录集的第一个记录。如果BOF为True,表明当 前记录指针所处的位置确实是数据集的第一个记录。EOF(End of File)属性值为一个布尔值,表明当前记录指针所 处的位置是否为记录集的最后一个记录。如果EOF为True,表明当前记 录指针所处的位置确实是数据集的最后一个记录。(2)First方法在DataSet的派生类中,调用First方法将记录指针移至数据集的 第一条记录处,并使之成为当前记录。同时将BOF属性值设置为True。(3)Last方法Last方法与First方法非常相似,只不过Last方法是将记录指针移 至数据集的最后一条记录处,并使之成为当前记录。它将EOF属性值设 置为True。DateC+面向对象程序设计程序设 计基础教程10.3 数据集组件DataSet(4)MoveBy方法MoveBy函数的基本格式如下:function MoveBy( Distance:Integer):Integer;调用MoveBy方法是将记录指针指向数据集中与当前记录相 关的一条记录处,Distance是指需要移动的记录数目。距离是 正值表明在数据集中朝前移动,负值表明是朝后移动。 (5)Next方法调用Next方法将记录指针置于数据集中的下一条记录,并 使之成为当前记录。如果记录指针已处于数据集的最后一条记 录,就将EOF属性值设置为True。 (6)Prior方法Prior方法与Next方法非常相似,Prior方法将记录指针置 于数据集中的上一条记录,并使之成为当前记录;如果记录指 针已处于数据集的第一条记录,就将BOF属性值设置为True。DateC+面向对象程序设计程序设 计基础教程10.3 数据集组件DataSet对数据集进行的操作 (1)Append调用Append方法不仅可以在数据集的末尾建立一个新的空记录,还可以将新的记录设 置为当前记录。在调用Append方法后,应用程序允许用户向记录的字段中输入数据,并且 能够通过调用Post方法将这些更改提交给数据库。 (2)Cancel调用Cancel方法可以用来取消对当前记录中一个或多个字段的修改。在这些更改还未 提交给数据库时,Cancel方法使记录恢复到修改前的状态,并将数据集置于dsBrowse状态 。 (3)Delete调用Delete方法用来将当前记录从数据库中删除。如果该数据集处于激活状态, Delete方法将产生一个异常事件。 (4)Edit调用Edit方法用来编辑数据集中的当前记录。 (5)Insert调用Insert方法不仅可以在数据集中打开一个新的空记录,还可以将新的记录设置为 当前记录。在调用Insert方法后,应用程序允许用户向记录的字段中输入数据,并且能够 通过调用Post方法将这些更改提交给数据库。 (6)Post调用Post方法用来向数据库提交一个修改的记录。数据集中编辑修改数据库数据的方 法如Edit、Insert或Append,以及浏览数据库中数据的方法如First、Last、Next和Prior 都会自动的调用Post方法。DateC+面向对象程序设计程序设 计基础教程10.3 数据集组件DataSet数据集的字段字段组件代表了数据集中各个独立的字段,Delphi中定义了字段 类Field及其相关的属性和方法,并提供了Field的派生对象。字段组 件是非可视组件。一般来说,一个简单的字段组件用来表示数据表中 的字段特征,如数据类型和字段大小。它也用于表示字段的显示特征 如排列对齐方式、显示格式和编辑格式等。当
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号