2012-12-14 36 views
3

我有一個需要在x64平臺下構建的應用程序。我需要訪問.mdb文件。通過訪問我的意思,插入,刪除或更新數據庫。我無法使用Jet OLE數據庫和ODBC驅動程序。與OLE數據庫它顯示「Jet Oledb未註冊」。 ODBC驅動程序和應用程序之間的ODBC平臺不匹配。我可以在X86平臺上做這些操作。但在我的應用程序中,我被要求在x64平臺下構建我的項目。任何人都可以爲我提供任何解決方案。注:我不應該使用任何第三方應用程序與x64應用程序和數據庫進行通信。x64應用程序訪問mdb數據庫

感謝任何提前回應。

回答

3

您需要使用最新的驅動程序從微軟稱爲ACE
Here you can find the download bits

注重以下載正確的一組(64或86)爲您的預期目標機器 同樣的連接字符串應該利用這些驅動程序,所以你可能需要一個連接字符串這樣

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourPathToTheMDBFile.mdb; 
Persist Security Info=False; 

作爲替代你可以建立你的x86平臺的應用程序,如果你沒有使用64位代碼的任何直接交互做,它會作品是在64位操作系統。該解決方案是可取的,因爲你可以使用舊JET.OleDb.4.0

讓我給64位/ 32位操作系統的問題的簡要說明,平臺用於構建應用程序和32位/ 64位驅動程序:

  • 構建應用程序的平臺AnyCPU - 你的代碼工作正常 在32/64位系統,通過JIT編譯器發出的代碼將有客戶機操作系統的 相同位數。但是,你不能使用32位驅動程序 64位應用程序和反之亦然。 JET.OleDB.4.0僅32位。如果您爲AnyCPU編譯並在64位上運行 ,遊戲結束。你需要一個64位的驅動程序。
  • 您爲x86平臺構建應用程序 - 您的代碼在 32/64位系統中正常工作,您可以使用32位驅動程序。當然,由JIT編譯器發出的代碼 是32位,因此您不能在64位系統上使用64位 驅動程序。
+0

您是否建議我需要卸載我的辦公室2007(32位)應用程序 –

+0

我不明白你的意思。該應用程序將部署在另一臺具有64位env的機器上,或者是具有64位env的機器? – Steve

+0

我的機器是64位,但我使用的是32位Office,我需要安裝accessengine_x64.exe。它無法安裝。所以發生問題。但是,謝謝你的解決方案,如果我使用的是64位的辦公軟件,或者我的電腦沒有安裝32位的辦公軟件。 –

相關問題