他们都是访问数据库的技术。最初访问数据库是很困难的,因为每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API必须有深刻的了解. 因此,能处理各种各样数据库的通用的API就应运而生了. 也就是现在的ODBC(Open Database Connectivity), ODBC是人们在创建通用API的早期产物. 有许多种数据库遵从了这种标准,被称为ODBC兼容的数据库.但ODBC并不是完美无缺的,它仍然含有大量的低级的调用,基于ODBC开发应用程序仍较困难.开发者不得不将大量的精力花在底层的数据库通信中,而不能专注于他们所要处理的数据. 后来微软提出了一个解决方案: DAO(Data Access Objects 数据访问对象模型),用于访问本地数据库;同时还有RDO(Remote Data Objects, 远程数据对象模型)为分布式数据库体系设计,后来发展为ADO,同时具备本地和远程数据库访问功能。
尽管它们都有各自的不足之处. 根据微软的说法,ODBC提供了本地SQL数据的存取,DAO提供了高级的数据对象.另访问数据库的操作更加容易,DAO和RDO都需要数据以SQL(Structured Query Language)的格式存储.
针对这些缺陷,微软提出了OLEDB,一个基于COM的数据存储对象,能提供对所有类型的数据的操作,甚至能在离线的情况下存取数据(比方说,你使用的是你的便携机,你可以毫不费力地看到最后一次数据同步时的数据映像).OLEDB位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的应用程序.你的ADO调用先被送到OLEDB,然后再交由ODBC处理.
ActiveXDataObjects(ADO)是微软最新的数据访问技术。它被设计用来同新的数据访问层OLEDBProvider一起协同工作,以提供通用数据访问(UniversalDataAccess)。OLEDB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。
最重要的三个ADO对象是Connection,Recordset和Command
oledb分两种:直接的oledb和面向odbc的oledb,后者架构在odbc上,这样没有自己的oledb提供者的数据库也可以使用oledb的特点了