自从我使用经典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”驱动程序吗?
答案 0 :(得分:71)
这主要是历史问题,实际上ACE取代了JET:
Wikipedia answers your question非常详细。
最相关的部分是:
在2007版本之后,Access包含特定于Office的版本 Jet,最初称为Office Access Connectivity Engine(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位版本下本机运行 视窗。
至于问题的第二部分,我最近安装了Office 2010,我必须单独下载ACE组件。我从链接Microsoft Access Database Engine 2010 Redistributable获得了它们。这可能是因为我在64位Windows下安装了32位版本的Office;无论如何,很容易从Microsoft获得必要的文件。
答案 1 :(得分:6)
当用于基本操作时,驱动程序基本相同,并且与更复杂的东西(联合,嵌套查询等)显示出明显的差异。
根据个人经验,ACE不提供完全向后兼容的结果。它可能会打开并读取/写入以前的.mdb格式,但数据类型会对完全相同的查询进行更改。
例如,在TEXT字段上使用UNION时,JET用于返回TEXT(255)结果,ACE返回MEMO?!
与BI或报表工具(如Crystal Reports)结合使用会产生很多麻烦。