2010-08-06 31 views
1

試圖獲得本地服務器版本的Advantage OLE DB提供程序在64位Windows 7計算機上工作。安裝了64位版本10.00.0.3版本並複製了我的應用程序。從app目錄註冊adsoledb64.dll。我什麼也沒得到。不寫日誌。我將不得不在64位機器上編譯應用程序嗎?非常困惑和沮喪。優勢ole db提供程序10.0.0.3 adsoledb 64位 - 無法使其工作

+0

你能詳細說一下「無所得」嗎?有錯誤嗎?您的應用程序是否成功加載提供者?連接有錯誤嗎?或者它連接,然後不獲取數據? – 2010-08-08 12:59:14

+0

我沒有收到任何寫入ads_err.dbf的東西,也沒有從我的.net應用程序發出錯誤。我在32位機器上測試了應用程序(已編譯的AnyCPU),在那裏工作的很好。 oledb提供商的優勢來自32位安裝和64位安裝(僅安裝在64位機器上)。 我的應用程序自己在32位工作站上編譯並複製(使用其多個dll)到我用於測試的64位機器上。 想知道如果我需要在錯誤的地方註冊更多的DLL或DLL ..如果有人有這個工作,會愛建議。也許我需要一些嘗試寫入應用程序的連接。 – thomcat 2010-08-09 19:52:11

+0

也爲編譯我想在64位上運行我有優勢連接庫編譯爲X64,但應用程序中的一些其他庫將只編譯爲AnyCPU或x86,所以它的一點點混合...有6 libs完全。 – thomcat 2010-08-09 19:53:55

回答

2

根據我從評論中收集的信息,聽起來好像您的應用程序是作爲32位應用程序運行的。如果是這樣,它將無法加載64位版本的OLE DB提供程序。該conn.Open();通話可能會導致錯誤,像這樣的:

The 'Advantage.OLEDB.1' provider is not registered on the local machine. 

一種方法來測試,這將是安裝提供的32位版本,看看它是否工作。

或者,您可能會考慮使用Advantage .NET Data Provider而不是OLE DB提供程序。從長遠來看,使用本機數據提供程序而不是通過OLE DB可能會更簡單。

+0

確實最終與應用程序和lib與副本作爲x86運行,它的工作。它確實認爲,因爲我在虛擬機上,所以我在做服務器,所以它爲此拋出一個錯誤(5185)。你可以把設置放在ads.ini中來解決這個問題。是的,我認爲純粹的64個應用程序仍然很少......因此,現在運行在64臺機器上的32個對我來說可以。我也切換到.net提供程序。謝謝你的幫助! – thomcat 2010-08-11 12:42:27

+0

@thomcat:我很高興你的工作。感謝您的調查結果報告。 – 2010-08-11 13:01:30

相關問題