54

自从我使用 Classic ASP 和 Microsoft Access 进行一些编程以来,已经有很多年了,我们使用“Microsoft.Jet.Oledb”驱动程序来访问和显示数据。

我被要求做一些使用“Microsoft.Ace.Oledb”访问 MS Excel 数据的工作。我发现这是“Microsoft Access 2010 Engine Redistributable”下载的一部分。

我想知道“Microsoft.Jet.OleDb”是否已取代“Microsoft.Ace.Oledb”驱动程序并且本质上是相同的还是完全不同的东西?

另外,您在购买 MS Access 2010 时通常会获得“Microsoft.Ace.Oledb”驱动程序吗?

4

2 回答 2

76

这主要是历史问题,ACE实际上已经取代了JET:

维基百科非常详细地回答了您的问题

最相关的部分是:

从 2007 版开始,Access 包括一个特定于 Office 的 Jet 版本,最初称为 Office Access 连接引擎 (ACE),但现在称为 Access 数据库引擎。此引擎与以前版本的 Jet 引擎完全向后兼容,因此它可以从早期 Access 版本中读取和写入 (.mdb) 文件。它引入了一种新的默认文件格式 (.accdb),它为 Access 带来了多项改进,包括复杂的数据类型,例如多值字段、附件数据类型和备忘录字段中的历史跟踪。它还带来了安全和加密方面的改进,并支持与 Microsoft Windows SharePoint Services 3.0 和 Microsoft Office Outlook 2007 的集成

另外,ACE 提供了 64 位驱动程序,因此可以在 64 位机器上使用,而 JET 不能。

该驱动程序不是 Windows 操作系统的一部分,但可作为可再发行版本使用。 [11] 以前,Jet 数据库引擎只有 32 位,不能在 64 位版本的 Windows 下本机运行。

至于你问题的第二部分,我最近安装了 Office 2010,我不得不单独下载 ACE 组件。我从链接Microsoft Access Database Engine 2010 Redistributable获得它们。这可能是因为我在 64 位 Windows 下安装了 32 位版本的 Office;无论如何,必要的文件很容易从 Microsoft 获得。

于 2013-01-18T15:14:38.990 回答
7

驱动程序在用于基本操作时基本相同,并且与更复杂的东西(联合、嵌套查询等)显示出显着差异。

根据个人经验,ACE 不提供完全向后兼容的结果。它可能会打开和读取/写入以前的 .mdb 格式,但完全相同查询的数据类型转换会发生变化。

例如,当在 TEXT 字段上使用 UNION 时,JET 曾经返回 TEXT(255) 结果,ACE 返回 MEMO ?!

与 BI 或 Crystal Reports 等报告工具结合使用时,这会产生很多麻烦。

于 2015-11-12T22:18:48.037 回答