Prash Shirolkar, Author
Alyssa Henry, Contributor
Stephen Pepitone, Contributor
Acey J. Bunch, Contributor
Microsoft Corporation
摘要:了解 Microsoft 数据访问技术的过去、现在和未来。
本页内容
简介
本文介绍 Microsoft 数据访问技术的过去、现在和未来,这些技术包括 DB-Library、ESQL、DAO、Microsoft® 数据访问组件 (MDAC)(包括 ODBC、ADO 和 OLE DB)、ADO.NET 和 SQL Native Client。本文将标识哪些技术会得到增强,哪些技术和组件将在未来的版本中被弃用或排除。
Microsoft 数据访问组件 (MDAC)
通过 Microsoft 数据访问组件 (MDAC),开发人员可以连接到种类繁多的关系和非关系数据源,并且使用这些数据源中的数据。您可以使用 ActiveX?Data Objects (ADO)、开放式数据库连接 (ODBC) 或 OLE DB 连接到很多个不同的数据源。您可以通过由 Microsoft 生成和交付或者由各种第三方开发的提供程序和驱动程序完成该操作。
当前 MDAC 体系结构
通过当前的 MDAC 体系结构,客户端-服务器应用程序、n 层应用程序或 Web 浏览器应用程序可以访问 SQL、半结构化存储和旧式数据存储区。另外,通过 MDAC(并根据不同的需求),这些应用程序可以使用 ADO、OLE DB 或 ODBC 灵活地访问数据。
图 1. 当前 MDAC 体系结构
出于本文档的目的,您可以基于技术和产品将 MDAC 协议栈划分为下列组件:
•
ADO(包括 ADOMD 和 ADOX)
•
OLE DB(包括 SQL Server OLE DB 提供程序、Oracle OLE DB 提供程序、用于 ODBC 驱动程序的 OLE DB 提供程序、Data Shape Provider 和 Remote Data Provider)
•
ODBC(包括 SQL ODBC 驱动程序和 Oracle ODBC 驱动程序)
当前 MDAC 组件
下列组件在当前版本中受到支持。当您开发新的应用程序或者升级现有的应用程序时,请使用这些组件。
•
ADO:ActiveX 数据对象 (ADO) 提供了将继续得到增强的高级编程模型。尽管使用 ADO 的性能要比直接针对 OLE DB 或 ODBC 编码稍差一些,但它易于学习和使用,并且可以在诸如 Microsoft Visual Basic ®Scripting Edition (VBScript) 或 Microsoft JScript® 之类的脚本语言中使用。
•
ADOMD:ADO Multi-Dimensional (ADOMD) 将与多维数据提供程序(例如,Microsoft OLAP 提供程序,也称为 Microsoft 分析服务提供程序)一起使用。自 MDAC 2.0 开始,没有对其进行过重大的功能增强;但是,它将可以在 64 位 Microsoft Windows® 操作系统上使用。
•
ADOX:ADO Extensions for DDL and Security (ADOX) 支持对数据库、表、索引或存储过程的定义进行创建和修改。您可以将 ADOX 与任何提供程序一起使用。Microsoft Jet OLE DB 提供程序为 ADOX 提供了完整支持,而 Microsoft SQL OLE DB 提供程序提供了有限的支持。在未来的 MDAC 版本中,没有为 ADOX 计划重大的增强;但是,它将可以在 64 位 Windows 操作系统上使用。
•
OLE DB:OLE DB 是一个全面的 COM 接口集,这些接口可用于访问多种数据存储区中的多种多样的数据。OLE DB 提供程序可用于访问数据库、文件系统、消息存储区、目录服务、工作流和文档存储区中的数据。OLE DB 核心服务(尽管不是每个 OLE DB 提供程序)将可以在 64 位 Windows 操作系统上使用。
•
SQLOLEDB:用 于 SQL Server 的 Microsoft OLE DB 提供程序 (SQLOLEDB) 支持对 Microsoft SQL Server 6.5 和更高版本的访问。该 OLE DB 提供程序将是未来 MDAC 功能增强的中心。它将可以在 64 位 Windows 操作系统上使用。
•
Microsoft SQL Server 网络库:SQL Server 网络库使 SQLOLEDB 和 SQLODBC 可以与 SQL Server 数据库通信。下列 SQL Server 网络库当前在 MDAC 版本中被弃用:Banyan Vines、AppleTalk、Servernet、IPX/SPX、Giganet 和 RPC。TCP/IP、命名管道和共享内存 SQL Server 网络库将继续得到增强,并且将可以在 64 位 Windows 操作系统上使用。
•
ODBC:Microsoft 开放式数据库连接 (ODBC) 接口是一个 C 编程语言接口,该接口使应用程序可以访问多种数据库管理系统 (DBMS) 中的数据。使用该 API 的应用程序被限制为只能访问关系数据源。ODBC 将可以在 64 位 Windows 操作系统上使用。
•
SQLODBC:Microsoft SQL Server ODBC 驱动程序 (SQLODBC) 支持对 Microsoft SQL Server 6.5 和更高版本的访问。SQLODBC 将可以在 64 位 Windows 操作系统上使用。
被弃用的 MDAC 组件
在 MDAC 的当前版本中仍然支持这些组件,但是在未来的版本中可能将它们移除。Microsoft 建议您在开发新的应用程序时避免使用这些组件。另外,当您升级或修改现有的应用程序时,请移除对这些组件的任何依赖性。
•
Jet:从版本 2.6 开始,MDAC 不再包含 Jet 组件。换句话说,MDAC 2.6、2.7、2.8 以及未来的所有 MDAC 版本都不包含 Microsoft Jet、Microsoft Jet OLE DB 提供程序和 ODBC 桌面数据库驱动程序。
•
MSDASQL:用 于 ODBC 的 Microsoft OLE DB 提供程序 (MSDASQL) 通过 ODBC 驱动程序提供了对数据库的 ADO 客户端访问。这已经成为 ADO 的默认提供程序;但是,对于未来版本的 MDAC 和 64 位 Windows 操作系统而言,MSDASQL 已经被弃用。因此,要从 ADO 访问数据库,客户端必须使用适当的本机 OLE DB 提供程序(例如,SQLOLEDB)来访问 Microsoft SQL Server。MSDASQL 将不能在 64 位 Windows 操作系统上使用;但是,仍然可以通过 32 位 Windows 子系统在 64 位 Windows 操作系统上使用它。
•
MSDADS:通过 Microsoft OLE DB Provider for Data Shaping (MSDADS),可以在应用程序中创建键、字段或行集合之间的分层关系。自 MDAC 2.1 开始,没有进行过重大的功能增强。该提供程序将在未来的 MDAC 版本中被弃用。Microsoft 建议您使用 XML 而不是 MSDADS。
•
Oracle ODBC:Microsoft Oracle ODBC 驱动程序 (Oracle ODBC) 提供了对 Oracle 数据库服务器的访问。它提供了对 Oracle 7 的完整支持。它还使用 Oracle 7 仿真提供了对 Oracle 8 数据库的有限支持。Oracle ODBC 驱动程序尚未针对 Oracle 9 数据库进行测试。
•
RDS:远 程数据服务 (RDS) 是一种用于跨 Internet 或 Intranet 访问远程 ADO 记录集对象的专用 Microsoft 机制。自 MDAC 2.1 开始,还没有对 RDS 进行过重大的功能增强。该组件将被弃用。Microsoft 现在交付 Microsoft SOAP Toolkit 2.0,应用程序可以在该组件中使用开放的、基于 XML 的标准来访问远程数据。使用 RDS 的应用程序应当迁移到 SOAP。
•
JRO:自 MDAC 2.6 开始,Microsoft Jet OLE DB 提供程序和其他相关组件已经被从 MDAC 协议栈中移除。Jet 复制对象 (JRO) 仅与 Jet (Access) 数据库一起使用,基本上用于创建或压缩 Jet 数据库和 Jet 复制管理。JRO 已经被弃用,并且 MDAC 2.7 将是它的最后一个版本。它将不能在 64 位 Windows 操作系统上使用。
•
SQL XML:SQL XML 提供了对用于 SQL Server 的 Microsoft OLE DB 提供程序 (SQLOLEDB) 的扩展,以使客户端可以通过 XML 请求 Microsoft SQL Server 2000 数据以及检索 XML 流。它最初是与 MDAC 2.6 一起发布的。通过 SQL XML Web 版本 1,客户端可以使用 Updategrams 和 Bulk Load 在 SQL Server 2000 中插入、更新和删除数据。该组件不会被弃用,但是它将被从未来的 MDAC 版本中移除。该产品的当前版本和更高版本将作为 Web 下载提供。SQL XML 将可以在 64 位 Windows 操作系统上使用。
MDAC 版本
以下为过去、现在和未来 MDAC 版本的可支持性方案的列表(从最早的版本开始)。
•
MDAC 1.5、MDAC 2.0 和 MDAC 2.1:这些版本的 MDAC 是通过 Microsoft Windows NT?Option Pack、Microsoft Windows Platform SDK 或 MDAC Web 站点发布的独立版本。这些版本的 MDAC 不再受到支持。
•
MDAC 2.5:该 版本的 MDAC 随附在 Windows 2000 操作系统中。MDAC 2.5 的未来 Service Pack 将随附在相应的 Windows 2000 Service Pack 中。另外,这些 MDAC Service Pack 将根据 Windows 2000 Service Pack 发布日程安排发布到 MDAC Web 站点中。您只能在 Windows NT、Windows 95 和 Windows 98 平台上安装该版本的 MDAC。在 Windows 2000 和 Windows Millennium Edition 平台上,您只能通过相应的操作系统或它们的 Service Pack 安装该版本。该版本当前受到支持。
•
MDAC 2.6:MDAC 2.6 RTM、SP1 和 SP2 分别随附在 Microsoft SQL Server 2000 RTM、SP1 和 SP2 中。另外,这些 MDAC Service Pack 根据 Microsoft SQL Server 2000 Service Pack 发布日程安排发布到 MDAC Web 站点中。您可以将该版本的 MDAC 和它的 Service Pack 安装到 Windows 2000、Windows Millennium Edition、Windows NT、Windows 95 和 Windows 98 平台上。该版本不再受到支持。
•
MDAC 2.7:该 版本的 MDAC 随附在 Microsoft Windows XP RTM 和 SP1 操作系统中。您可以将该版本的 MDAC 和它的 Service Pack 安装到 Windows 2000、Windows Millennium、Windows NT 和 Windows 98 平台上。在 Windows XP 平台上,您只能通过该操作系统或它的 Service Pack 安装该版本。
•
32 位版本的 MDAC 2.7 已经被发布到 MDAC Web 站点。
•
64 位版本的 MDAC 2.7 将只与 64 位版本的 Windows XP 一起发布。
•
MDAC 2.8:该版本的 MDAC 随附在 Windows Server 2003 以及 Windows XP SP2 和更高版本中。
•
在向客户发布 Windows Server 2003 的同时,32 位版本的 MDAC 2.8 也将发布到 MDAC Web 站点中。
•
64 位版本的 MDAC 2.8 将只与 64 位版本的 Windows Server 2003 一起发布。
SQL Native Client (SQLNCLI)
SQL Native Client (SQLNCLI) 是 Microsoft SQL Server 2005 中新增的一种数据访问技术,并且是被用于 OLE DB 和 ODBC 的独立的数据访问应用程序编程接口 (API)。它将 SQL OLE DB 提供程序和 SQL ODBC 驱动程序组合为一个本机动态链接库 (DLL),同时还提供了区别于 Microsoft 数据访问组件 (MDAC) 的新功能。SQL Native Client 可以用来创建新的应用程序或者增强那些需要利用新的 SQL Server 2005 功能(例如,Multiple Active Result Sets (MARS)、用户定义的类型(User-Defined Types ,UDT)和 XML 数据类型支持)的现有应用程序。
ADO.NET
ADO.NET 是对传统 ADO 的改进,可用于创建分布式的数据共享应用程序。它是一种高级的应用程序编程接口,面向支持对数据进行断开连接访问的松耦合的、n 层的、基于 Internet 的应用程序。它是 Microsoft .NET Framework 的核心组件。
图 2. ADO.NET 体系结构
ADO.NET 提供了 .NET 托管提供程序以便进行连接访问,并且提供了以 XML 格式读取和写入的数据集,以便对已检索的数据和用户交互进行断开连接管理。下列数据提供程序可用于 ADO.NET:
•
Microsoft SQL .NET 数据提供程序:该提供程序使 .NET 应用程序可以直接访问 Microsoft SQL Server 数据库。
•
Microsoft OLE DB .NET 数据提供程序:该提供程序使 .NET 应用程序可以使用它们的本机 OLE DB 提供程序访问数据库。
•
Microsoft ODBC .NET 数据提供程序:该提供程序使 .NET 应用程序可以通过使用它们的 ODBC 驱动程序访问数据库。
•
Microsoft Oracle .NET 数据提供程序:该提供程序使 .NET 应用程序可以访问 Oracle 数据库。
数据集以 XML 格式读取和写入,并且 XMLDataDocument 集成了关系视图和 XML 视图。
已过时的数据访问技术
已过时的技术是指在多个产品版本中尚未增强或更新并且将被从未来的产品版本中排除的技术。在编写新的应用程序时,请不要使用这些技术。当您修改那些使用这些技术编写的现有应用程序时,请考虑将这些应用程序迁移到 ADO.NET。
下列组件被视为过时的:
•
DB-Library:这 是一个包含 C API 的特定于 SQL Server 的编程模型。自 SQL Server 6.5 以来,一直没有对 DB-Library 进行任何功能增强。它的最后一个版本随附在 SQL Server 2000 中,并且将不会被移植到 64 位 Windows 操作系统。
•
嵌入式 SQL (E-SQL):这 是一个特定于 SQL Server 的编程模型,它支持将 Transact-SQL 语句嵌入到 Visual C 代码中。自 SQL Server 6.5 开始,一直没有对 E-SQL 进行任何功能增强。它的最后一个版本随附在 SQL Server 2000 中,并且将不会被移植到 64 位 Windows 操作系统。
•
数据访问对象 (DAO):DAO 提供对 JET (Access) 数据库的访问。可以从 Microsoft Visual Basic ®、Microsoft Visual C++® 和脚本语言中使用该 API。它随附在 Microsoft Office 2000 和 Office XP 中。DAO 3.6 是该技术的最后一个版本。它将不能在 64 位 Windows 操作系统上使用。
•
远程数据对象 (RDO):RDO 经过专门设计以访问远程的 ODBC 关系数据源,并且使得 ODBC 的使用变得更加容易,而无须编写复杂的应用程序代码。它随附在 Microsoft Visual Basic 版本 4、5 和 6 中。RDO 版本 2.0 是该技术的最后一个版本。