2013-01-18 18 views
43

自從我使用Classic ASP和Microsoft Access進行一些編程之後,我們使用「Microsoft.Jet.Oledb」驅動程序訪問並顯示了很多年數據。Microsoft.Jet.OleDb和Microsoft.Ace.OleDb之間的區別

我被要求使用「Microsoft.Ace.Oledb」訪問MS Excel數據。我發現這是「Microsoft Access 2010 Engine Redistributable」下載的一部分。

我想知道如果「Microsoft.Jet.OleDb」已經取代了「Microsoft.Ace.Oledb」驅動程序,並且基本相同或是完全不同的東西嗎?

此外,當您購買MS Access 2010時,您是否通常會獲得「Microsoft.Ace.Oledb」驅動程序?

回答

55

這主要是歷史問題,有效ACE一直所取代JET:

非常詳細Wikipedia answers your question

最相關的部分是:

隨着2007版開始,訪問包括Office特定版本的Jet ,最初被稱爲Office訪問連接引擎(ACE), 但現在所謂的訪問數據庫引擎。該引擎是 完全向後兼容以前版本的Jet引擎,所以 它從早期的Access版本讀取和寫入(.mdb)文件。它 引入了一種新的默認文件格式(.accdb),它帶來了對Access的幾個 改進,包括複雜的數據類型,如 多值字段,附件數據類型和 備註字段中的歷史跟蹤。它也帶來了安全性和加密改進和 能夠與Microsoft Windows SharePoint Services 3.0和 的Microsoft Office Outlook 2007中集成

此外,ACE提供了一個64位的驅動程序,這樣可以在64位機上使用,而JET不能。

的驅動程序不是Windows操作系統的一部分,但 可作爲可再發行。[11]以前,Jet數據庫引擎 僅爲32位,並未在Windows的64位版本 Windows下本機運行。

至於你的問題的第二部分,我最近安裝了Office 2010,我不得不單獨下載ACE組件。我從鏈接Microsoft Access Database Engine 2010 Redistributable得到他們。這可能是因爲我在64位Windows上安裝了32位版本的Office;無論如何,必要的文件很容易從微軟獲得。

+0

自從我做任何Office工作以來,我已經很長時間了?你是一位救生員,謝謝! – RT88

+0

請注意,微軟在[ADE下載頁面](https://www.microsoft.com/en-us/download/details.aspx?id=54920)上陳述了很多(令人驚訝的)免責聲明,例如, (1)ADE不是用於ACE的通用替代品,(2)ADE在服務器端應用程序中不是* Jet的替代品,(3)在Web應用程序或服務組件中使用它不是支持的。 – Heinzi

4

當用於基本操作時,驅動程序基本相同,並顯示與更復雜的東西(工會,嵌套查詢等)的顯着差異。

根據個人經驗,ACE不提供完全向後兼容的結果。它可能會打開並讀取/寫入以前的.mdb格式,但數據類型中的更改會轉換完全相同的查詢。

例如,在TEXT字段上使用UNION時,JET用於返回TEXT(255)結果,ACE返回MEMO?!

這會與BI或報表工具(如Crystal Reports)結合產生很多麻煩。

+1

看來ACE 2016解決了這個問題。現在找不到與Jet的任何不兼容性。 –