在这一章里我们主要介绍Delphi的数据访问部件的层次结构多部件之间的关系部件的属性方法事件以及各部件的应用这些部件包括
● TSession部件
● 数据集部件(TTable和TQuery)
● TDatasource部件
● 字段对象TField
● 字段编辑器的使用
● TReport部件和TBatchMove部件
我们对这些部件的属性方法和事件进行一般性的描述读者在实际使用Delphi开发应用程序时还可以通过联机帮助获得有关部件更详细的信息
Delphi数据访问部件的层次结构
Delphi提供了强大的开发数据库应用程序的能力它给用户提供了大量的数据访问部件以方便程序设计人员开发数据库应用程序这些部件中有些部件继承了另一些部件的属性方法和事件也就是说多部件之间存在着继承和被继承的关系各部件的这种关联便构成了一个层次结构
TSession是全局性的部件在应用程序运行时它自动地建立在设计阶段和运行过程中它是一个不可见的部件
TDatabase部件是为开发客户/服务器数据库应用程序时设置登录的数据库的有关参数的它在数据访问部件页上
TDataset部件是不可见的TTable和TQuery部件是由它派生而来的这两个部件一般被称为数据集部件它们在数据访问部件页上
TDatasource部件是连接数据集部件和数据浏览部件的桥梁它在数据访问部件页上
TFields部件对应于数据库表中的实际字段它既可以在应用程序的运行过程中动态地生成也可以在程序设计阶段用字段编辑器创建它是不可见的部件在程序中我们可以通过TField部件来访问数据库记录的各个字段值
Tsession部件及其应用
TSession部件一般用得较少但它对于一些特殊的应用是很有用的在每一个数据库应用程序运行时Delphi自动地创建一个TSession部件程序设计人既不能看见该部件也不能显示地创建一个TSession 部件但是我们可以在应用程序中全局性地使用TSession部件的属性方法
TSession部件的重要属性及作用
TSession部件的许多重要属性是用于控制数据库应用程序与数据库的连接的在一个应用程序中可以全局性地设置TSession的有关属性值对与之相连接的磁盘上的数据库进行控制TSession部件主要有下列属性
Database属性是TSession中可以进行连接的所有数据库的数据库名字列表这些数据库的名字常常是实际数据库的别名包括数据库的路径用户名用户登录口令等参数
DatabaseCount属性是TSession中可以进行连接的所有数据库的数量它是一个整数
KeepCounnections属性是一个布尔型属性用它说明应用程序是否保持与一个非活动数据库的连接因为对于一个数据库当该数据库中没有相应的数据集部件(TTable或TQuery)被打开时该数据库将自动地变成非活动的数据库缺省情况下KeePcounnections的值是True就是说应用程序总是保持着与数据库的连接即使数据库变成了非活动的数据库时也是如此如果将KeepConnections属性设置成False那么当数据库由活动状态变成非活动状态时应用程序与该数据库的连接也随之中断
NetFileDir属性说明BDE网络控制文件的路径名
PrivateDir属性说明存取临时文件的路径名
TSession部件的方法
TSession部件中的大部分方法是用于向用户提供与应用程序相连接的数据库的信息如数据库的名字及别名数据库中的表名以及数据库引擎BDE的有关参数等在设计数据库应用程序时想要获取有关数据库的信息调用TSession部件的下列方法将会大大简化程序的设计
GetAliasNames方法调用该方法我们可以获得数据库引擎BDE中定义的数据库别名
GetAliasParams方法该方法主要用于获取我们在BDE中定义数据库别名时所说明的参数值如BDE所在的目录路径以及实际名称等
GetDatabaseNames 方法调用该方法可以帮助我们获得当前应用程序可以进行连接的所有数据库的名字数据库的名字是用户使用BDE工具定义的实际数据库的别名
GetDriverNames方法数据库引擎BDE可以与多种数据库管理系统相连接如客户/服务器数据库管理系统OracleSybase以及本地数据库管理系统dBASEParadox等BDE与每一种数据库管理系统进行连接时都有相应的驱动程序而且这些驱动程序都可以选择地安装通过调用GetDriverNames方法我们可以获得当前BDE安装的数据库驱动程序的名字
GetDriverParams方法BDE的数据库驱动程序中包含着多个参数如支持的民族语言DBMS的版本号文件块大小等对于服务器上的DBMS还有数据库服务器的名字等等
GetTableNames方法因为每一个数据库都是由多个数据库表组成的我们通过说明数据库名然后调用GetTableNames方法便可以获得该数据库中全部的数据库表的名字
上述这些方法在调用时都需要一个字符串列表作为参数而且都返回一个字符串列表的值
TSession部件还有一个叫DropConnections的方法用于控制应用程序与数据库的连接当调用DropConnections方法时应用程序与所有的数据库的连接将会切断
TSession部件应用举例
例:我们创建一个应用程序通过调用TSession有关的方法获取当前应用程序可以进行连接的数据库的名字以及获取其中任意一个数据库中的全部数据库表的名字
通过TSession部件获取数据库的有关信息
窗体中主要使用了两个列表框其中列表框DatabaselistBox用于显示数据库的名字列表框TablelistBox用于显示数据库中的表名程序运行完后数据库的名字显示在DatabaselistBox列表框中当用户单击DatabaselistBox列表框中的数据库名时该数据库全部的数据库表的名字将会显示在TablelistBox列表框中有关的程序代码如下
[] [] [] []