异构数据库访问和ODBC技术,对开发人员和用户的好处是十分明显的。但是,用ODBC技术进行异构数据库访问还有一些不足: ● 每个DBMS都提供自己的ODBC接口,自己的数据类型、单独的SQL版本和功能。许多接口不符合标准,使得相同的代码访问不同的数据库时,结果会出现不一致; ● 使用ODBC接口机的效率会降低。 所以,从1997年开始,微软开发推广基于OLE DB的数据对象接口技术。OLE DB和ADO是MicroSoft公司为了适应网络迅速发展的趋势而开发的最新的数据访问编程接口。OLE DB和ADO都作为SQL Server数据库管理系统的一部分提供。微软公司已经把OLE DB定位为ODBC的继承者。因为OLE DB是在OLE技术基础上创建的,ODBC提供了一种DLL调用层接口,而ADO(Active Database Object)为OLE DB提供了COM接口,允许从其它与OLE兼容的应用程序中调用,OLE是Microsoft的数据访问策略,是万能数据访问的基础。万能数据访问是一组通用接口,它可以用来表示任何数据源中的数据。正是OLE DB技术使万能数据访问成为现实。 基于ODBC或OLE DB的编程对开发人员来讲都是比较繁杂的一件事。由于对象技术的特点和优势,各软件厂商纷纷推出基于ODBC或OLE DB技术的数据库程序设计对象。微软在1993年推出ODBC API 1.5版本时,就已经在Visual C++中用Microsoft Foundation Classes类结构对ODBC API进行了封装。在面向对象抽象的单元里,MFC 只做了些普通工作使用户从ODBC 的复杂性中解脱出来,但所做的这点已有巨大的影响。所以在重点讲解了ODBC技术后,我们重点讲解了几种面向数据库编程的数据库对象:DAO、RDO、ADO: ● DAO 接口开发用于通过MS Visual Basic 或MS Access 附带的Jet 数据库引擎来访问本地数据库。DAO 为Jet 数据库作了优化,因此,如果应用程序必须只访问SQL Server 的话它也许不是好的选择。但是,DAO能够将来自多个数据源的数据作连接,这可认为是该接口的极大优点。 ● RDO 与ODBC 紧密相连,当访问SQL Server 数据库时明显比DAO 快。它开发以访问服务器而不是本地数据库。RDO 功能与DAO 相似,因此在SQL Server 应用程序中优先考虑DAO 。但是,RDO 不允许数据源连接或访问Jet 数据库。RDO 的一个重要特性是向Visual Basic 程序返回一个ODBC 句柄,于是用户有能力使用RDO 不支持的O D B C 特性。 ● OLE DB 可以认为是ODBC API 的继承者或对象版本,ADO 被看作DAO 和RDO的继承者。OLE DB 和ADO 都比DAO 和RDO 要快。ADO还可被脚本语言如VBScript 所访问,这使得其成为新的工业标准。 最后简单介绍了与微软开发工具相抗衡的另外两个数据库开发工具:Borland公司的Delphi和Sybase公司的Powerbuilder。这些RAD工具允许开发者迅速设计、开发、调试和配置各种各样的数据库应用程序,并且能在性能、可扩展性和可维护性这些不断增长的需求上有所收获。当然,我们不能很透彻地掌握这两种开发工具的数据库处理能力,我们的目的是简单介绍一下他们的能力,使数据库应用编程人员能够解决问题。 注:最新的数据库开发工具象Borland公司的JBuider 7.0,IBM公司的Web Studio 5.0 等基于J2EE框架的资料请参照相关的网站 |