能够通过ole db提供访问和操作在数据库服务器中的数据。ado支持用于建立c/s和web的应用程序的主要功能。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ado同时具有远程数据服务(rds)功能,通过rds可以在一次往返过程中实现将数据从服务器移动到客户端应用程序和web页、在客户端对数据进行处然后将更新结果返回服务器的操作。delphi 6.0继续对microsoft的ado访问能力的支持。这种能力是通过一组新组件实现的,这些组件是在企业版的ado组件页中,在组件面版的ado页上可以找到这些组件。利用在前面章节提到的tdataset抽象类,ado组件可以不通过bde而直接实现ado连接。这意味着只需要很少的代码就可以实现该连接并且性能得到提高。利用ado数据访问组件,可以只使用ado结构与数据库取得联系并对其中的数据进行操作,而在这些过程中完全不需要使用bde。大多数的ado连接和数据集组件都是与基于bde的连接和数据集组件相类似的。tadoconnection组件与基于bde的应用程序中的tdatabase组件类似。tadotable与ttable,tadoquery与tquery,以及tadostoreproc和tstoredproc之间都具有这种类似的对应关系。使用这些ado组件的方式与我们常使用的数据访问组件(基于bde)都有许多相同之处。ttadodataset没有直接的bde对应组件,但它提供了许多与ttable和tquery相同的功能。同样,tadocommand也没有相对应的bde组件,它是在delphi/ado环境中完成特定功能的组件。delphi 6.0通过ado数据集访问组件,可以不借助bde数据引擎而是通过微软的oledb来访问更为广泛的数据库中的数据。ado数据集访问组件与常用的数据访问组件是并列的关系。在系统中我主要使用的是adotablet和adoquery两个组件。3.2.2 数据控制类datacontrol数据控制类负责数据库数据的显示,并把用户对数据的修改传回。这里的绝大多数组件,如dbtext, dbedit, dbmemo, dbimage, dblistbox, dbcombobox, dbcheckbox, dbradiogroup, dblookuplistbox, dblookupcombox, dbctrgrid的功能和对应的非数据感知组件相同,如tedit框,tradiogroups单选按钮组等,只不过在显示数据库数据时要用而已。在系统中主要使用数据网格控件dbgrid和数据库导航器控件dbnavigator。3.2.3 数据访问类dataaccess
数据库应用系统中数据访问是一个首要问题,包括单用户和 c/s系统,都必须联系一些数据库和数据表文件。delphi 6 提供了专门用于数据访问的基类控件。主要包括数据源控件datasource、客户数据集控件clientdataset、数据集提供器控件datasetprovider等等。tdatabase:当一个基于bde的数据库应用程序需要一个永久数据库连接时,需要定制向一个数据库服务器的连接时,需要事务控制和特殊的数据库别名时就得用到tdatabase对象。特别是当连接到一个远程的sql数据库服务器时,如果要利用bde进行数据库事务处理,那么,tdatabase对象的威力就体现出来了。在一个应用程序中为每一个数据库连接显示的声明tdatabase对象要根据需要而定,不是必需的。对一个数据库连接,如果没有显示的声明并实例化tdatabase对象,系统就会产生一个带有默认属性的tdatabase对象。tdatasource对象用于在dataset对象(包