IBM 和 Oracle 这样的公司认为,解决方案是将所有内容都放进一个数据库结构。这是个好主意,但我们认为这不可行。相反,我们想要提供一种共同的方式来获取按照不同格式存储的数据。我们想关注于访问而不是关注于数据库。这意味着您可以使用相同的前端来访问关系型数据库、主体数据库、Excel 电子表格和文本文档,所有这些都保存在不同的地方。
我们将通过 ADO 和 OLE DB 做到这一点。您已经听说过这些名字,它们是我们的“通用数据访问”策略的一部分,但是我想有必要解释一下它们是如何从其他数据访问策略进化来的。了解这些是非常重要的,因为在当前最受欢迎的接口 (RDO) 和下一代接口 (ADO) 之间存在着兼容性的鸿沟。如果理解了这段历史,您就会明白应该何时、如何以及是否有必要将代码从 RDO 转化为 ADO。
VBSQL
这是 VB 和 SQL Server 之间的一个老接口。它是在基于 C 语言的 DB Library 上建立的,那是我们在 SQL Server 上使用 Sybase 的年代。它能与 SQL Server 的后续版本兼容,但并不支持新的功能。如果您使用的是这种接口,那么现在应该是升级的时候了。这一点也适用于 DB Library 本身。
ODBCDirect
这是 DAO 的一个变种,它允许您不通过 Jet 数据库引擎访问 ODBC,它实际上就是使用 RDO,但带有 DAO 对象名称。
RDO(远程数据对象)
这是一种紧凑、轻量级的与 ODBC 的接口,是在几年前推出的。它模仿了 DAO 对象模型,并且使开发人员获得 ODBC 低级功能的方式变得更加容易。它在对 SQL Server 的数据访问中非常流行,但其能力仅限于获取 Jet 或 ISAM 数据。另外,它也只能通过现有的 ODBC 驱动程序访问关系型数据库。我们正在超越 RDO,但是如果您目前已经拥有一个运行良好的 RDO 应用程序,那就没有必要去改变它。后面我将谈到这一点。
OLE DB
欢迎使用我们的样板。这是通往“通用数据访问”模型的大门。它是一个低级的基于对象的接口,且不限于关系型数据、ISAM、Jet 或其他任何东西。它可以处理任何类型的信息,也可以是您极少直接面对的东西,除非要开发数据存储或数据库引擎。您将通过 ADO 访问它,并且通过一个 OLE DB 提供者进行数据存储。
ADO(ActiveX 数据对象)
这是与 OLE-DB 的应用程序级接口。它外表与 RDO 和 DAO 相似 (换句话说,它具有相似的对象模型,因此您能够轻易掌握它),但却是这些技术的超集。您可以使用 ADO、通过 OLE DB 服务提供者来处理数据,也可以通过 OLE DB for ODBC 接口来访问现有 ODBC 驱动程序。它是属于未来的。比起我们的任何其他接口,它提供有更广泛的访问方式,并且我们建议您为将来的项目开始使用这种技术。只是有一个问题,它不与 RDO 向后兼容。它似曾相识,因此您可以快速掌握,但是您不能混合代码。