Microsoft.Jet.OleDb和Microsoft.Ace.OleDb之间的区别

RT8*_*T88 51 ms-access ms-office ms-access-2010

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

我被要求使用"Microsoft.Ace.Oledb"访问MS Excel数据.我发现这是"Microsoft Access 2010引擎可再发行组件"下载的一部分.

我想知道"Microsoft.Jet.OleDb"是否已取代"Microsoft.Ace.Oledb"驱动程序并且基本相同或者它们是完全不同的东西?

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

das*_*ash 72

这主要是历史问题,有效的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数据库引擎2010可再发行组件中获取它们.这可能是因为我在64位Windows下安装了32位版本的Office; 无论如何,很容易从Microsoft获得必要的文件.


Mil*_*ica 6

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

根据个人经验,ACE不提供完全向后兼容的结果.它可能会打开并读取/写入以前的.mdb格式,但是对完全相同的查询的数据类型转换有所更改.

例如,在TEXT字段上使用UNION,其中JET用于返回TEXT(255)结果,ACE返回MEMO ?!

与BI或报表工具(如Crystal Reports)结合使用会产生很多麻烦.

  • 看起来ACE 2016解决了这个问题.暂时找不到与Jet的任何不兼容性. (2认同)
  • 我想说的是,我在使用 ACE 时遇到了一个似乎由 JET 解决的问题。对两个表进行连接时,特定列的前 10 行是空白的。ACE 决定忽略列中的其余数据并且不带任何东西。这非常令人烦恼和困惑。奇怪的是,切换到 JET 带来了所有数据。我更喜欢使用 ACE,因为我一直在使用它,但 JET 似乎返回了正确的结果,并且比 ACE 更快地返回。我有点沮丧和困惑 (2认同)