Delphi 6/7的重要功能之一便是推出了新一代的跨平台的数据存取引擎:dbExpress。dbExpress是一组新的控件、技术和驱动程序,以允许开发人员使用它连接到各种数据源,再配合连接不同数据库的DLL文件,让开发人员处理后端数据库中的数据。由于dbExpress具备了跨平台的能力,能够使用在Windows和Linux平台以及未来的.NET上,而且提供了快速的数据处理能力,让开发人员开发出更有效率的数据库应用程序,因此,势必成为以后C++Builder/Delphi和Kylix的核心数据存取技术。在Delphi 2006中更进一步地把dbExpress升级到3.0的版本,除了增加支持更多、更新的关系数据库之外,dbExpress 3.0也大幅增加了执行效率,开始支持Unicode,更重要的是dbExpress 3.0也移植到了.NET执行环境中,让dbExpress应用程序能够同时执行在Win32、Kylix、.NET以及未来的Win64作业环境里。此外,在本书稍后的章节中读者也会发现,Borland正努力让dbExpress以及.NET下的BDP数据存取一致化,因此,dbExpress和BDP存在许多类似的服务,这样做的好处是让开发人员能够以最小的成本掌握两种数据存取技术,也让应用程序之间的移植工作更为简单。
这些新的dbExpress控件除了刚进入Delphi世界的开发人员需要学习之外,即使是已经使用Delphi有一段时间并有经验的Delphi开发人员也需要上手的时间。此外,dbExpress提供了强大的功能,允许Delphi开发人员微调它的执行行为,并且存取底层的核心信息。同时dbExpress也能够和旧的Delphi版本中称为MIDAS的技术一起工作,而与Delphi 6/7中称为DataSnap的技术结合可以让开发人员能够同时开发单机、Briefcase、客户/服务器和Thin-Client类型的数据库应用程序,让开发人员能够使用一组控件和技术同时开发数种类型的应用系统。到了Delphi 2006,dbExpress更允许Delphi的开发人员能够移植到.NET执行环境中,在.NET环境下也能够开发出以往Win32下各种类型的dbExpress应用系统。
我们将会在本书中介绍所有dbExpress强劲的功能。万丈高楼平地起,本章将从说明如何使用这些新的dbExpress控件开始,一步一步地带领各位学习到dbExpress最精髓的核心技术。
1.1 dbExpress控件
dbExpress控件集在Delphi 7中包含了7个控件,这些控件的功能就是让应用程序连接后端数据库,访问数据表中的数据,把变更的数据更新回数据库之中以及让开发人员观察dbExpress向后端数据库下达的命令等。简单地说,这些控件涵盖了数据库应用程序所有必要的功能。图1-1是dbExpress控件集中的所有dbExpress控件。

图1-1 Delphi 2006的dbExpress控件集
表1-1概要地说明了每一个dbExpress控件基本的功能,在稍后的章节中将会详细介绍每一个dbExpress控件是如何使用的。
表1-1
|
控件名称 |
功 能 |
|
TSQLConnection |
和后端数据库建立连接的控件 |
|
TSQLDataSet |
用来执行SQL语句,执行存储过程,或是直接连接数据库中特定数据表的控件,是一个通用的控件。TSQLDataSet同时具备了类似TSQLQuery、TSQLStoredProc和TSQLTable控件的能力 |
|
TSQLQuery |
用来执行SQL语句的控件 |
|
TSQLStoredProc |
用来执行数据库中存储过程(Stored Procedure)的控件 |
|
TSQLTable |
用来连接数据库中特定的数据表的控件,类似BDE中的TTable控件 |
|
TSQLMonitor |
可以观看和查看客户端向后端数据源发出的SQL语句的控件。开发人员可以使用它来调试或调整应用程序的执行效率 |
|
TSimpleDataSet |
允许dbExpress变更数据能力的控件,可以结合Delphi的数据感知控件以存取数据 |
dbExpress控件还可搭配Delphi 2006中Data Access控件集中的TClientDataSet、TDataSetProvider等控件开发单层、客户/服务器以及多层架构的数据库应用程序,本书稍后都会详细地说明。
在Delphi 2006/C++ Builder 2006中,dbExpress目前正式支持6种数据库,这些支持的数据库以及dbExpress相对应的驱动程序如表1-2所示。
表1-2
|
数据库名称 |
dbExpress驱动程序 |
关系数据库厂商驱动程序 |
|
InterBase 7.5.1, 6.5, 7.0, 7.1 |
dbxint30.dll |
gds32.dll |
|
DB2 8.x, 7.x |
dbxdb230.dll |
dbcli.dll |
|
Oracle 10g, 9.1.0, 9.2.0 |
dbxora30.dll |
oci.dll |
|
MySQL 4.0.24 |
dbxmys30.dll |
libmysql.dll |
|
MS SQL Server 2000/2005 |
dbxmss30.dll |
oledb |
|
Informix 9.x |
dbxinf30.dll |
isqlb09a.dll |
|
Adaptive Sybase Anywhere 9, 8 |
dbxasa30.dll |
dboodbc9.dll |
|
Sybase 12.5 |
dbxase30.dll |
libct.dll;libcs.dll |
Delphi 2006的dbExpress 3.0不但支持了更新的关系数据库,而且比dbExpress 1.x/2.x版增加了Adaptive Sybase Anywhere以及Sybase的支持,此外,目前dbExpress对于MySQL的支持虽然只到4.0.24,但是Borland准备在不久的将来也支持最新的MySQL 5.0。
要学习dbExpress控件最好的方法就是直接使用它来开发数据库应用程序,在下一节我们将立刻进入学习dbExpress控件集的世界之中,让开发人员快速地学习如何使用这些新的控件开发应用系统。






