(摘自《ADO/MTS/ COM+和分布 式多层架构》李维注认识ADO A D O是M i c r o s o f t目前主要的数据存取技术,从1 9 9 7年M i c r o s o f t推出A D O的第 一个版本之后, A D O的整体架构并没有太大的改变。不过在每一个新的A D O版本 之中,M i c r o s o f t不断地改善A D O的执行效率,提供更多的功能,持续增加A D O的 稳定性,并且让A D O能够存取更多种类的数据源。 A D O是M i c r o s o f t提出的各种数据存取技术的演化结果,因为随着数据日益复 杂,数据存取技术也必须不断地进步以适应应用系统的需求。目前,虽然A D O是 Wi n d o w s平台存取数据的标准技术,不过A D O也将会继续演变。要了解A D O为什 么会成为目前的标准,可以从Wi n d o w s平台数据存取技术的进化而得知。 1-1-1 Microsoft的数据存取技术演变 M i c r o s o f t在Wi n d o w s平台中提供了数种不同的数据存取技术。这些不同的数 据存取技术各有它们的特性和出现的原因。M i c r o s o f t也从实现这些不同的数据存 取技术中学习到了许多经验,并且根据这些经验开发出新一代技术, A D O便是一 个非常好的范例。现在就让我们从各种不同的数据存取技术角度来看看每一种技 术出现时,它是为了存取什么样的数据源。 1. ODBC 1 9 9 2年M i c r o s o f t和S y b a s e、D i g i t a l共同制定了O D B C标准接口,以单一的 ODBC API来存取各种不同的数据库。随后O D B C便获得了许多数据库厂商和 T h i r d - P a r t y的支持而逐渐成为标准的数据存取技术。 O D B C以当时的业界标准规范X/Open Call-Level Interface(CLI)和I S O / I E C 9075-3 Call-Level Interface(SQL/CLI)为涵盖的范围,因而支持了广阔的数据库。 虽然O D B C在初期的版本中执行效率不佳,而且功能有限,因此也为人们所贬低。 但是,随着M i c r o s o f t不断地改善O D B C,使O D B C的执行效率不断增加, O D B C驱 动程序的功能也日渐齐全。到目前, O D B C已经是一个稳定并且执行效率良好的数 据存取引擎。 不过O D B C仅支持关系数据库,以及传统的数据库数据类型,并且只以C / C + + 语言A P I形式提供服务,因而无法符合日渐复杂的数据存取应用,也无法让脚本语 言使用。因此M i c r o s o f t除了O D B C之外,也推出了其他的数据存取技术以满足程序 员不同的需要。 2. DAO 1 9 9 3年M i c r o s o f t为了让程序员能够存取A c c e s s数据库,使用OLE Automation 技术封装了Jet Engine。这些使用Jet Engine存取A c c e s s数据库的OLE Automation O b j e c t便称为Data Access Object(DAO)。 D A O能够存取x B a s e的数据库以及E x c e l文件,并且能够结合O D B C存取关系 数据库。但是D A O毕竟主要的设计目的是存取A c c e s s数据库,因此D A O在存取 A c c e s s数据库时非常有效率,但是在存取其他的数据源时却表现得不怎么好。目前 D A O已经慢慢接近维护的状态,因此建议各位尽量不要在新的项目中使用D A O。 3. RDO 由于D A O在结合O D B C存取关系数据库时表现得并不好,因此在1 9 9 5年 M i c r o s o f t同样以OLE Automation技术直接封装ODBC API,让程序员能够存取关 系数据库。这种数据存取技术便称为Remote Data Object(RDO)。 M i c r o s o f t之所以推出R D O,是因为ODBC API是非常复杂的A P I,许多程序员 无法直接使用ODBC API来开发应用程序,因此M i c r o s o f t以简化的R D O对象让程序 员能够较为简单存取数据。此外,通过R D O,V B和脚本语言也能够存取各种关系 数据库。不过目前R D O也已经逐渐地被放弃了,因此建议各位也不要在新的项目 第1章ADO/MTS/COM+和分布式多层架构3 下载 中使用R D O,毕竟R D O只能算是一个过渡性质的数据存取解决方案。 4. OLE-DB 随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数 据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数 据源可能不是传统的关系数据库,而可能是E x c e l文件,E m a i l或I n t e r n e t / I n t r a n e t上 的电子签名信息。M i c r o s o f t为了让应用程序能够以统一的方式存取各种不同的数 据源,在1 9 9 7年提出了Universal Data Access(UDA)架构。U D A以C O M技术为核心, 协助程序员存取企业中各类不同的数据源。 U D A以O L E - D B (属于操作系统层次的软件)做为技术的骨架。O L E - D B定义了 统一的C O M接口做为存取各类异质数据源的标准,并且封装在一组C O M对象之中。 藉由O L E - D B,程序员就可以使用一致的方式来存取各种数据。 5. ADO 虽然O L E - D B允许程序员存取各类数据,是一个非常良好的架构,但是由于 O L E - D B太底层化,而且在使用上非常复杂,需要程序员拥有高超的技巧,因此只 有少数的程序员才有办法使用O L E - D B。这让O L E - D B无法广为流行。为了解决这 个问题,并且让V B和脚本语言也能够藉由O L E - D B存取各种数据源, M i c r o s o f t同 样以C O M技术封装O L E - D B为A D O对象,简化了程序员数据存取的工作。由于 A D O成功地封装了O L E - D B大部分的功能,并且大量简化了数据存取工作,因此 A D O也逐渐被愈来愈多的程序员所接受。 4 Delphi 5.x ADO/MTS/COM+高级程序设计篇 下载
很有可能borland都要放弃了
bdeborland都要放弃了 不是可能 而是肯定。
COM+和分布
式多层架构》李维注认识ADO
A D O是M i c r o s o f t目前主要的数据存取技术,从1 9 9 7年M i c r o s o f t推出A D O的第
一个版本之后, A D O的整体架构并没有太大的改变。不过在每一个新的A D O版本
之中,M i c r o s o f t不断地改善A D O的执行效率,提供更多的功能,持续增加A D O的
稳定性,并且让A D O能够存取更多种类的数据源。
A D O是M i c r o s o f t提出的各种数据存取技术的演化结果,因为随着数据日益复
杂,数据存取技术也必须不断地进步以适应应用系统的需求。目前,虽然A D O是
Wi n d o w s平台存取数据的标准技术,不过A D O也将会继续演变。要了解A D O为什
么会成为目前的标准,可以从Wi n d o w s平台数据存取技术的进化而得知。
1-1-1 Microsoft的数据存取技术演变
M i c r o s o f t在Wi n d o w s平台中提供了数种不同的数据存取技术。这些不同的数
据存取技术各有它们的特性和出现的原因。M i c r o s o f t也从实现这些不同的数据存
取技术中学习到了许多经验,并且根据这些经验开发出新一代技术, A D O便是一
个非常好的范例。现在就让我们从各种不同的数据存取技术角度来看看每一种技
术出现时,它是为了存取什么样的数据源。
1. ODBC
1 9 9 2年M i c r o s o f t和S y b a s e、D i g i t a l共同制定了O D B C标准接口,以单一的
ODBC API来存取各种不同的数据库。随后O D B C便获得了许多数据库厂商和
T h i r d - P a r t y的支持而逐渐成为标准的数据存取技术。
O D B C以当时的业界标准规范X/Open Call-Level Interface(CLI)和I S O / I E C
9075-3 Call-Level Interface(SQL/CLI)为涵盖的范围,因而支持了广阔的数据库。
虽然O D B C在初期的版本中执行效率不佳,而且功能有限,因此也为人们所贬低。
但是,随着M i c r o s o f t不断地改善O D B C,使O D B C的执行效率不断增加, O D B C驱
动程序的功能也日渐齐全。到目前, O D B C已经是一个稳定并且执行效率良好的数
据存取引擎。
不过O D B C仅支持关系数据库,以及传统的数据库数据类型,并且只以C / C + +
语言A P I形式提供服务,因而无法符合日渐复杂的数据存取应用,也无法让脚本语
言使用。因此M i c r o s o f t除了O D B C之外,也推出了其他的数据存取技术以满足程序
员不同的需要。
2. DAO
1 9 9 3年M i c r o s o f t为了让程序员能够存取A c c e s s数据库,使用OLE Automation
技术封装了Jet Engine。这些使用Jet Engine存取A c c e s s数据库的OLE Automation
O b j e c t便称为Data Access Object(DAO)。
D A O能够存取x B a s e的数据库以及E x c e l文件,并且能够结合O D B C存取关系
数据库。但是D A O毕竟主要的设计目的是存取A c c e s s数据库,因此D A O在存取
A c c e s s数据库时非常有效率,但是在存取其他的数据源时却表现得不怎么好。目前
D A O已经慢慢接近维护的状态,因此建议各位尽量不要在新的项目中使用D A O。
3. RDO
由于D A O在结合O D B C存取关系数据库时表现得并不好,因此在1 9 9 5年
M i c r o s o f t同样以OLE Automation技术直接封装ODBC API,让程序员能够存取关
系数据库。这种数据存取技术便称为Remote Data Object(RDO)。
M i c r o s o f t之所以推出R D O,是因为ODBC API是非常复杂的A P I,许多程序员
无法直接使用ODBC API来开发应用程序,因此M i c r o s o f t以简化的R D O对象让程序
员能够较为简单存取数据。此外,通过R D O,V B和脚本语言也能够存取各种关系
数据库。不过目前R D O也已经逐渐地被放弃了,因此建议各位也不要在新的项目
第1章ADO/MTS/COM+和分布式多层架构3
下载
中使用R D O,毕竟R D O只能算是一个过渡性质的数据存取解决方案。
4. OLE-DB
随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数
据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数
据源可能不是传统的关系数据库,而可能是E x c e l文件,E m a i l或I n t e r n e t / I n t r a n e t上
的电子签名信息。M i c r o s o f t为了让应用程序能够以统一的方式存取各种不同的数
据源,在1 9 9 7年提出了Universal Data Access(UDA)架构。U D A以C O M技术为核心,
协助程序员存取企业中各类不同的数据源。
U D A以O L E - D B (属于操作系统层次的软件)做为技术的骨架。O L E - D B定义了
统一的C O M接口做为存取各类异质数据源的标准,并且封装在一组C O M对象之中。
藉由O L E - D B,程序员就可以使用一致的方式来存取各种数据。
5. ADO
虽然O L E - D B允许程序员存取各类数据,是一个非常良好的架构,但是由于
O L E - D B太底层化,而且在使用上非常复杂,需要程序员拥有高超的技巧,因此只
有少数的程序员才有办法使用O L E - D B。这让O L E - D B无法广为流行。为了解决这
个问题,并且让V B和脚本语言也能够藉由O L E - D B存取各种数据源, M i c r o s o f t同
样以C O M技术封装O L E - D B为A D O对象,简化了程序员数据存取的工作。由于
A D O成功地封装了O L E - D B大部分的功能,并且大量简化了数据存取工作,因此
A D O也逐渐被愈来愈多的程序员所接受。
4 Delphi 5.x ADO/MTS/COM+高级程序设计篇
下载
ADO是不很成熟的新东西,有很大的发展空间!