Delphi数据访问部件的应用及编程

在这一章里我们主要介绍Delphi的数据访问部件的层次结构、多部件之间的关系、部件的属性、方法、事件以及各部件的应用。这些部件包括:

● TSession部件

● 数据集部件(TTable和TQuery)

● TDatasource部件

● 字段对象TField

● 字段编辑器的使用

● TReport部件和TBatchMove部件

我们对这些部件的属性、方法和事件进行一般性的描述,读者在实际使用Delphi开发应用程序时,还可以通过联机帮助获得有关部件更详细的信息。 

15.1 Delphi数据访问部件的层次结构 

Delphi提供了强大的开发数据库应用程序的能力,它给用户提供了大量的数据访问部件。以方便程序设计人员开发数据库应用程序。这些部件中,有些部件继承了另一些部件的属性、方法和事件,也就是说多部件之间存在着继承和被继承的关系,各部件的这种关联便构成了一个层次结构 

图15.1 Delphi数据访问部件的层次结构 

TSession是全局性的部件,在应用程序运行时,它自动地建立,在设计阶段和运行过程中它是一个不可见的部件。

TDatabase部件是为开发客户/服务器数据库应用程序时,设置登录的数据库的有关参数的,它在数据访问部件页上。

TDataset部件是不可见的,TTable和TQuery部件是由它派生而来的,这两个部件一般被称为数据集部件,它们在数据访问部件页上。

TDatasource部件是连接数据集部件和数据浏览部件的桥梁,它在数据访问部件页上。

TFields部件对应于数据库表中的实际字段,它既可以在应用程序的运行过程中动态地生成也可以在程序设计阶段用字段编辑器创建。它是不可见的部件,在程序中我们可以通过TField部件来访问数据库记录的各个字段值。 

15.2 Tsession部件及其应用 

TSession部件一般用得较少,但它对于一些特殊的应用是很有用的,在每一个数据库应用程序运行时Delphi自动地创建一个TSession部件。程序设计人既不能看见该部件也不能显示地创建一个TSession 部件,但是我们可以在应用程序中全局性地使用TSession部件的属性、方法。 

15.2.1 TSession部件的重要属性及作用 

TSession部件的许多重要属性是用于控制数据库应用程序与数据库的连接的,在一个应用程序中,可以全局性地设置TSession的有关属性值,对与之相连接的磁盘上的数据库进行控制。TSession部件主要有下列属性:

Database属性:是TSession中可以进行连接的所有数据库的数据库名字列表,这些数据库的名字常常是实际数据库的别名,包括数据库的路径、用户名、用户登录口令等参数。

DatabaseCount属性:是TSession中可以进行连接的所有数据库的数量,它是一个整数。

KeepCounnections属性:是一个布尔型属性,用它说明应用程序是否保持与一个非活动数据库的连接。因为对于一个数据库,当该数据库中没有相应的数据集部件(TTable或TQuery)被打开时,该数据库将自动地变成非活动的数据库。缺省情况下,KeePcounnections的值是True,就是说应用程序总是保持着与数据库的连接,即使数据库变成了非活动的数据库时,也是如此。如果将KeepConnections属性设置成False,那么当数据库由活动状态变成非活动状态时,应用程序与该数据库的连接也随之中断。

NetFileDir属性:说明BDE网络控制文件的路径名。

PrivateDir属性:说明存取临时文件的路径名。 

15.2.2 TSession部件的方法: 

TSession部件中的大部分方法是用于向用户提供与应用程序相连接的数据库的信息,如数据库的名字及别名,数据库中的表名以及数据库引擎BDE的有关参数等,在设计数据库应用程序时,想要获取有关数据库的信息,调用TSession部件的下列方法,将会大大简化程序的设计。

GetAliasNames方法:调用该方法,我们可以获得数据库引擎BDE中定义的数据库别名。

GetAliasParams方法:该方法主要用于获取我们在BDE中定义数据库别名时所说明的参数值,如BDE所在的目录路径以及实际名称等。

GetDatabaseNames 方法:调用该方法可以帮助我们获得当前应用程序可以进行连接的所有数据库的名字,数据库的名字是用户使用BDE工具定义的实际数据库的别名。

GetDriverNames方法:数据库引擎BDE可以与多种数据库管理系统相连接,如客户/服务器数据库管理系统Oracle、Sybase以及本地数据库管理系统dBASE,Paradox等,BDE与每一种数据库管理系统进行连接时,都有相应的驱动程序,而且这些驱动程序都可以选择地安装。通过调用GetDriverNames方法。我们可以获得当前BDE安装的数据库驱动程序的名字。

GetDriverParams方法:BDE的数据库驱动程序中包含着多个参数,如支持的民族语言、DBMS的版本号、文件块大小等,对于服务器上的DBMS,还有数据库服务器的名字等等。

GetTableNames方法:因为每一个数据库都是由多个数据库表组成的,我们通过说明数据库名,然后调用GetTableNames方法,便可以获得该数据库中全部的数据库表的名字。

上述这些方法在调用时都需要一个字符串列表作为参数,而且都返回一个字符串列表的值。

TSession部件还有一个叫DropConnections的方法用于控制应用程序与数据库的连接,当调用DropConnections方法时,应用程序与所有的数据库的连接将会切断。

时间: 2024-10-26 10:55:34

Delphi数据访问部件的应用及编程的相关文章

第十五章-数据访问部件的应用及编程(一)(1)

在这一章里我们主要介绍Delphi的数据访问部件的层次结构.多部件之间的关系.部件的属性.方法.事件以及各部件的应用.这些部件包括: ● TSession部件 ● 数据集部件(TTable和TQuery) ● TDatasource部件 ● 字段对象TField ● 字段编辑器的使用 ● TReport部件和TBatchMove部件 我们对这些部件的属性.方法和事件进行一般性的描述,读者在实际使用Delphi开发应用程序时,还可以通过联机帮助获得有关部件更详细的信息. 15.1 Delphi数据

第十五章-数据访问部件的应用及编程(三)(4)

15.6.2.3 删除字段部件 用字段编辑器Fields Editor为数据集部件创建好的字段部件都会显示在字段编辑器的Fields列表框中,如果用户认为其中的一些字段部件不合适或不再需要时,可以单击这些不需要的字段部件,然后单击鼠标右键弹出一佣弹出式菜单,从弹出式菜单中选择Delete菜单项,便可删除相应的字段部件,如果在弹出式菜单中单击Select All菜单项,然后选择Delete菜单项,这样会删除已创建好的所有的字段部件.某一个字段部件被删除以后,通过单击Add Fields菜单项可以重

第十五章-数据访问部件的应用及编程(三)(3)

15.6.1.4 字段部件的访问 字段部件对应着数据库表中实际的字段,用户要读写数据库表中的字段值其实是通过访问相应的字段部件进行的.在前面的章节中我们介绍过在Delphi的数据库应用程序中有两类字段部件:一类是利用字段编辑器创建的永久性字段部件:另一类是随着数据集部件被激活(被打开)而动态生成的字段部件.对于永久性字段部件的访问可以直接调用使用字段部件的名字进行.假设我们在设计阶段利用字段编辑器创建了对应于Customer.DB表中Company字段的字段部件Table1Company,下面的

第十五章-数据访问部件的应用及编程(三)(1)

字段部件在应用程序中始终是不可见的部件.在程序运行过程中是如此,在程序设计阶段也是如此,但是它在应用中起着非常重要的作用,可以说它是所有数据浏览部件从数据库表中显示.编辑数据的基础.这是因为字段部件直接对应着数据库表中的字段,浏览和修改表中的数据必须要通过字段部件,同时字段部件所拥有的属性可以用来说明数据库表中对应的字段的数据类型.当前的字段值.显示格式.编辑格式等,字段部件的事件如OnValidate可以用来设定输入字段值时进行有效性检验. 数据库表的每一列在应用程序中都有其对应的一个字段部件

第十五章-数据访问部件的应用及编程(二)(4)

15.5.1 TDataSource部件的属性 TDataSource部件除了其他部件都拥有的Name属性和Tag属性之外,主要有下面几个属性: DataSet属性:该属性说明TDataSource部件从中获取数据的数据集的名字,它可以是TTable部件的名字,也可以是TQuery部件的名字,甚至还可以指定其他窗体内的数据集作为该属性的值,如在下面的程序中我们指定窗体Form2中的table1作为窗体Form1中的DataSource1的DataSet属性值: TForm1.Formcreate

第十五章-数据访问部件的应用及编程(二)(3)

15.4.2.2 查找数据库表中的记录 如果想查找数据库表中的记录,必须想指定查找记录的一些字段的字段值,然后在表中进行检索,检索出与查找值相匹配的记录来.如果我们是在Paradox或dBASE数据库中的表中查找记录,那么查找值所对应的字段必须是表中的关键字段或辅助索引字段.如果查找SQL数据库服务器中的表,那么查找值必须是表的IndexFieldNames属性中指定的字段. Delphi提供了两种方式在数据库表中查找记录:Goto方式和Find方式.这两种方式十分相似,它们的主要区别在于为查找

第十五章-数据访问部件的应用及编程(二)(2)

15.4.2 TTable部件的方法及应用 15.4.2.1 设定数据库表的使用范围 在我们实际应用中的数据库表中常常存放着大量的数据信息,其中包含着很多的记录,而我们的应用程序可能只需对其中一部分记录进行操作,因此,为应用程序指定一个使用范围就显得特别重要了,为方便有效地指定数据库表的使用范围Delphi为TTable部件提供了下列方法供用户使用: ● SetRangeStart和EditRangeStart方法 ● SetRangeEnd和EditRangeEnd方法 ● SetRange(

第十五章-数据访问部件的应用及编程(一)(4)

SetRecords方法:调用该方法可以修改表中当前记录的多个字段的值,调用该方法之前必须将数据集部件置成编辑状态,调用该方法之后,还要调用post方法,才能真正将当前记录的修改写回数据库表.调用SetRecord方法时,被修改的字段值必须要与表中实际存在的字段名对应,并且数据类型要相匹配.例如,下面的代码是修改上面刚刚插入的那条记录. Table1.Edit; Tabel1.SetRecord(, , ,9600000,1200000000); Tabel1.post; 这一段代码是修改上面刚

第十五章-数据访问部件的应用及编程(一)(3)

15.3.4 数据集中的数据维护 数据集中的数据维护主要包括数据记录的修改,插入和删除.Delphi为数据集部件提供了相应的方法用于其中的数据维护.这些方法如表15.所示. 表15.3 Delphi用于数据维护的方法 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 方 法 名 功 能 ────────────────────────────── Edit 将数据集置为编辑状态 ────────────────────────────── Append 投寄所有被修改的记录,将记录指