2011-07-19 36 views
2

我使用的是在Windows 2008 R2標準版64位開發在我的C#應用​​程序ADODB COM對象。現在我已將應用程序移動到帶有Windows 2008 Standard 64位(不是R2)的prod服務器上,現在我在下面出現錯誤。看來MDAC 2.8沒有安裝在我的prod機器上?我找不到任何參考如何在Windows 2008機器上安裝MDAC 2.8,也許有人可以指點我正確的方向?ADODB COM對象沒有找到

錯誤:無法投型的COM對象ADODB.StreamClass'到接口類型「ADODB._Stream」。此操作失敗的原因是對IID的接口的COM組件調用QueryInterface「{} 00001565-0000-0010-8000-00AA006D2EA4」失敗由於以下錯誤:不支持此接口(從HRESULT異常:0x80004002(E_NOINTERFACE)) ,

回答

4

隨着Windows Server 2008 R2 SP1中,ADO COM接口發生了變化。其結果是,與Windows 7 SP1或服務器編譯的系統上的任何ADO應用程序2008 R2 SP1 不運行舊操作系統的(如Server 2008的非R2)。

這裏的鏈接到知識庫文章描述了這個問題(KB2517589):

文章還包含了一些解決方法,尤其是它鏈接到「兼容類型庫「你可以用它來編譯你的開發機器。

不幸的是,這個問題還沒有「真正」的解決方案(這是VBA開發者,其中目前唯一的解決方法是卸載開發機上的Windows 7 SP1特別痛苦)。有一個在微軟論壇線程這裏討論這個問題,並在更新發布:


UPDATE:在此期間,微軟已經發布了修復此問題。如果您的Windows 7 SP1/2008R2 SP1的開發機上安裝從以下頁面的修補程序(KB 2640696),並重新編譯應用程序,它會在舊操作系統重新工作:

+0

這是正確的答案。安裝2008 R2 SP1應被視爲解決方案。 –

+0

@Hans:他的生產機器是2008 *非R2 *。 – Heinzi

+0

我已經搜索了整天的解決方案,似乎升級到2008 R2是正確的一步。我發現的所有其他解決方案都是模糊不可靠的。 – Tomas

1

也許你可以試試下面的程序,以確定它是否真的存在與否: MDAC工具:組件檢查 http://www.microsoft.com/download/en/details.aspx?id=1953 它沒有提到Windows Server 2008中,但也許它的工作原理...

如果您確定該服務器中沒有ADODB COM對象,那麼您需要安裝MDAC2.8組件,您還可以從Microsoft下載這些組件。

鏈接:http://www.microsoft.com/download/en/details.aspx?id=5793

此外,在Windows Server 2008中,你可以去到文件夾: C:\ Program Files文件\ Common Files文件\系統\ ADO 和檢查,如果你有MDAC組件存在。對於MDAC 2.8,您應該有:msado28.tlb 這是您可以用來引用MS OFfice VBA項目中的ADODB對象的那個。

+0

我試圖使用該實用程序,但不知道如何使用它,非常複雜。也試圖從你的鏈接安裝驅動程序建議,但沒有任何反應。我開始安裝包,看到解壓縮文件的進展,然後什麼都沒有。我沒有收到任何錯誤消息或安裝確認消息。此安裝包也是在2005年創建的,Windows 2008未列爲支持的操作系統。 – Tomas

+0

沒錯。它沒有提及Server 2008,這意味着它不被支持,如下所述:http://msdn.microsoft.com/en-us/library/ms810810.aspx所以你需要改變你的程序使用ADO.NET而不是Interop COM。 –

+0

我想知道VBA在安裝在Windows Server 2008上的MS Office中使用了哪些組件,甚至Win 7如果MDAC不受支持則連接到數據庫。 –