ADO 和 RDO、DAO 的比较
ADO 并不是自动和您现存的数据访问应用程序代码兼容的。当 ADO 封装 DAO 和 RDO 的功能性的时候,您必须将许多语言要素转换为 ADO 语法。在某些情况下,这将意味着您现存代码的某些功能的一个简单转换。在其他情况下,最佳的做法可能是用 ADO 的新功能重写该应用程序。DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 象直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用。RDO (Remote Data Objects) 远程数据对象是一个到 ODBC 的、面向对象的数据访问接口,它同易于使用的 DAO style组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。尽管 RDO 在很好地访问 Jet 或 ISAM 数据库方面受到限制,而且它只能通过现存的 ODBC 驱动程序来访问关系数据库。但是,RDO 已被证明是许多 SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO 提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。ADO 是 DAO/RDO 的后继产物。ADO 2.0在功能上与 RDO 更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO “扩展”了 DAO 和 RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。例如,ADO 没有与 rdoEngine 和 rdoEnvironment 对象相等同的对象,可以显露 ODBC 驱动程序管理器和 hEnv 接口。尽管事实上您的接口可能是通过 ODBC OLE DB 服务提供程序实现的,但您当前也不能从 ADO 中创建 ODBC 数据源。包含在 DAO 和 RDO 模型中的许多功能被合并为单个对象,这样就生成了一个简单得多的对象模型。然而,由于这个原因,起初您可能会觉得找到合适的 ADO 对象、集合、属性、方法,或事件非常困难。与 DAO 和 RDO不同的是,尽管 ADO 对象是分层结构的,但在分层结构范围之外也是可以创建的。不过,也应当注意,ADO 当前并不支持 DAO 的所有功能。ADO 主要包括 RDO 风格的功能性,以便和 OLE DB 数据源交互,另外还包括远程和 DHTML 技术。一般说来,在 ADO 的演化过程中,马上把大多数 DAO 应用程序(except possibly是那些使用 ODBCDirect 的应用程序)移植到 ADO 上可能为时太早,因为当前的 ADO 并不支持数据定义 (DDL)、用户、组,等等。不过,如果您只将 DAO 用于客户—服务器应用程序,而并不依赖于 Jet 数据库引擎或不使用 DDL,那么您现在就可能移植到 ADO。最终,Microsoft 将提供一个 ADO DDL 部件来帮助进行 DAO 到 ADO 的移植,并为 OLE DB 供应商提供一般的 DDL 支持

解决方案 »

  1.   

    如果要使用RDO或ADO的数据库控件都需要另外从部件对话框中添加相应的数据控件,三种方式的数据控件不同。区分你的程序是DAO、RDO,还是ADO的,可以看看打开数据库的方式。DAO使用OpenDatabase方法,RDO使用OpenConnection方法,而ADO一般通过一个ConnectionString来确定数据库的类型和位置。 
      

  2.   


    Visual Basic 中的 ADO、DAO 和 RDO
    在 Visual Basic 中,可用的数据访问接口有三种:ActiveX 数据对象(ADO)、远程数据对象(RDO) 和数据访问对象(DAO)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。使用 Visual Basic,可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据。为什么在 Visual Basic 中有三种数据访问接口呢?因为数据访问技术总是在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。最新的是 ADO,它是比RDO和 DAO 更加简单,然而更加灵活的对象模型。对于新工程,应该使用 ADO 作为数据访问接口。为什么使用 ADO?
    ADO 是为 Microsoft最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。OLE DB 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO 在关键的 Internet 方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。之所以称为 ADO,是用了一个比较熟悉的暗喻,OLE 自动化接口。同时 ADO 使用了与 DAO和 RDO相似的约定和特性,简化的语义使它更易于学习。有关的简要概述,请参阅OLE DB 提供程序。有关 ADO 的详细信息,请参阅 ADO 2.0 初步。DAO 和 RDO
    为了向后兼容性,对于现存的工程,Visual Basic 将继续支持 DAO 和 RDO。详细信息 有关 RDO 编程的详细信息,请参阅使用远程数据对象和 RemoteData 控件。有关 DAO 编程的详细信息,请参阅对远程数据库使用数据访问对象。也可以在Microsoft DAO 3.51中找到完整的 DAO 参考。从 RDO 升级到 ADO
    如果 ADO 能够提供基于 RDO 的应用程序可用的优点,请考虑升级。有关平台之间差异的讨论以及将基于 RDO 的工程更改为 ADO 工程的指南,请参阅ADO 与 RDO 和 DAO 相比较。有关升级指南,请参阅从 RDO 2.0 转换到 ADO 2.0。
    这是MSDN里的。再详细请看MSDN,用“ADO”查询。
      

  3.   

    我把我自己的心得告诉你吧(如果错了,各位大虾不要砸我:)).DAO主要用于连接Access数据库,因为是采用Microsoft Jet引擎,所以只能支持到ACCESS97格式的数据库,一般很少用,不过简单ADO主要用于ODBC的DSN连接,由于直接与DSN关联,所以支持各种数据格式(只要ODBC有它的驱动就可以),而且也可用于网络,因此用的很多RDC和ADO差不多,但是其重心放在了远程数据库上,如果你考虑远程数据库的访问,可以考虑RDC至于详细的介绍,我就不去MSDN上抄了,反正楼上几位都已经贴的差不多了:)
      

  4.   

    DAO 主要存取 Jet 和 ODBC 吧ADO 主要应该是 OLEDB 了吧