13.2.2 Delphi可以访问的数据源(DataSource)
Delphi数据库应用程序是通过BDE获取它们所需的数据的,BDE与不同类型的数据源打交道,BDE可以使用的数据源有如表13.3所示
表13.3 Delphi可访问的数据源
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
数据源(DataSource) 特 性 描 述 文件扩展名
─────────────────────────────────────
数据库表是通过dBASE数据库管理系统或
dBASE数据库 DBD建立的,每个表是一个独立的文件 .DBF
─────────────────────────────────────
数据库表是通过Paradox数据库管理系统 .DB
Paradox数据库 或DBD建立的,每个表是一个独立的文件
─────────────────────────────────────
ASCII文件 表是通过Database Desktop建立的,每个 .TXT
表是一个独立的文件
─────────────────────────────────────
本地InterBase服务器 数据库是通过InterBase数据库管理系统 .GDB
建立的,多个表包含在一个数据库文件中
─────────────────────────────────────
SQL数据库服务器: 数据库是通过相应的数据库服务器提供的 依赖不同的
ORACLE,Sybase,Informix 专用或通用工具建立的,也可以通过DBD来 数据库管理
Microsoft SQL Server 创建数据库,并通过SQL Link访问数据库 系统
InterBase
─────────────────────────────────────
ODBC数据源 主要是指那些具有ODBC接口的数据库系统 依赖于相应
如MS Access,Btrieve等 的数据库
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
13.3 Delphi数据库的体系结构
Delphi使用可视化的部件创建数据库应用,跟创建其它的非数据库应用程序一样,数据库部件都具备一定的属性,程序设计人员可以在设计过程中设置部件的多种属性,也可以在程序运行过程中通过程序来设置部件的各种属性。
在Delphi部件板上有两页数据库部件用于开发数据库应用程序:
数据访问部件页:该页上的部件主要用于说明有关的数据库的信息,如应用程序要访问(连接)的数据库,要访问数据库中的具体的数据库表,以及要访问表中哪些字段等,在实际的开发应用中常用的部件有TDataSource、TTable、TQuery等。
数据控制部件页:该页上的部件主要用于显示浏览数据库中的数据信息,为用户提供了一个可视化的界面,常用的部件有:TDBGrid、TDBEdit、TDBCheck等,可以让用户对数据库中的信息进行有效的浏览、编辑、插入、删除等操作。
TTable、TQuery、TStoredproc部件负责与实际的数据库表联系,并从中获取数据信息,因而它们又常常被称为数据集部件,它们在程序设计过程中是可见的,但在程序运行时是不可见的,它们通过 BDE 为应用程序提供与数据库的连接, 数据控制部件通过TDataSource部件与数据集部件相连,为用户提供一个可视化的界面,并在其中显示数据库中的数据信息。
13.3.1 数据访问部件
数据访问部件页上提供了一组数据访问部件用来访问数据库中的数据。
图13.3 数据访问页上的数据访问部件
当要创建一个数据库应用时,首先在窗体中选择一个数据访问部件,然后为数据访问部件设置有关的属性,说明要访问的数据库、数据表以及表中的记录等,数据访问部件为数据控制部件与数据源建立一条通道。数据访问部件在程序运行时是不可见的。下表列出了数据访问页上的数据访问部件以及它们的主要用途:
表13.4 数据访问部件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件名称 主 要 用 途
────────────────────────────
作为数据集部件TTable、TQuery、StoredProc组
TDataSource 件与数据浏览件TDBGrid、TDBEdit之间传送数据
的通道。
────────────────────────────
它是存取磁盘上数据库表的媒介,它通过BDE存
TTable 取数据库表中的数据,TTable再与TDataSource
进行对话,使得数据浏览部件能够有效地从
TTable中访问数据并能显示和编辑其中的数据。
────────────────────────────
它利用SQL语言访问磁盘上数据库表中的数据,
TQuery 并与TDataSource对话,实现数据浏览部件
对数据库的访问。
────────────────────────────
TStoredProc 在应用程序中,它主要用来访问远程服务器中的
存贮过程
────────────────────────────
当应用程序要登录到一个远程服务器上的数据库
TDatabase 时,可以用该部件来建立应用程序与数据库永久
性的连接。
────────────────────────────
TBatchMove 用于复制数据库表的结构或表中的记录。
────────────────────────────
TReport 用于创建数据库的输出报表。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
值得指出的是在绝大多数数据库应用中,一般都是使用数据集部件TTable、TQuery或TStoredProc与磁盘上的数据库进行连接,用TDataSource部件连接数据控制部件和数据集部件,当然用户也可以自定义数据集部件,用于数据库应用当中, TTable 、 TQuery 和TStoredProc部件中都包含一个不可见的TField类型的对象Fields,Fields是一个串列表,它对应于数据库表或一个查询结果的列或字段。Fields对象是伴随着TTable、 TQuery 和TStoredproc部件的活动状态动态地建立的,当数据库表被关闭时,Fields 对象也随之消失,它在程序设计和程序运行过程中都是不可见的。
当然也可以利用Fields Editor建立永久性的Fields对象供Delphi应用程序使用,我们将在后面的内容中详细阐述。
13.3.1.1 TTable部件
利用TTable部件程序设计人员甚至可以不需要编写任何程序便可对数据库进行访问,在一个应用程序窗体中放置一个TTable部件的过程如下:
1、在部件选择板上选择Data Access页;
2、单击Table图标;
3、在窗体内单击鼠标,获得一个TTable部件;
4、为TTable部件设置有关的属性:
DatabaseName属性指定要访问的数据库所在的路径名,路径名可以用别名来表示。
TableName属性指定要访问数据库中具体的数据库表。
Active属性设置为True时,表示打开要访问的数据库表;设置为False时,暂时不打开要访问的数据库表。
缺省情况下,TTtable部件中包含了要访问的数据库表中所有的字段和记录,用鼠标双击TTable图标时,会出现一个字段编辑器(Fields Editor),使用Fields Editor可以对TTable部件中包含的数据库表中的字段的显示格式等属性进行编辑,具体可以控制:
● 建立一个永久性的字段列表,包括字段的顺序,字段的类型等,即使磁盘上实际的数据库表的表结构发生了改变,我们建立的这个永久性的字段列表也不会发生改变