FIX: 存取 IDBProperties::GetProperties 的違規情形,當您使用 OLE DB 服務元件

文章翻譯 文章翻譯
文章編號: 301679 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

徵狀

當多執行緒應用程式使用 OLE DB 服務元件,如果應用程式使用相同的 IDBProperties 介面指標,同時在兩個不同的執行緒中呼叫 IDBProperties::GetProperties 方法時,GetProperties 呼叫可能失敗 E_UNEXPECTED,或者您可能會收到存取違規。

如果您使用的 Microsoft 資料存取元件 (MDAC) 2.5 Service Pack 2 (SP2),發生存取違規。如果您使用的 MDAC 2.6 SP1,E_UNEXPECTED 會傳回。會在這兩種情況下呼叫成功,因為介面支援多執行緒的存取。

解決方案

MDAC 2.6 sp1

如果要解決這個問題,取得最新的 Service Pack 的 Microsoft 資料存取元件 2.6。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
300635資訊: 如何取得最新的 MDAC 2.6 Service Pack
此修正程式的 MDAC 2.6 SP1 版本應該具有下列檔案屬性:
   Date         Version       Size     File name     Platform
   ----------------------------------------------------------
   20-Jul-2001  2.61.7720.0   459,024  Oledb32.dll   x86
				

MDAC 2.5

如果要解決這個問題,取得最新的 Service Pack 的 Microsoft MDAC 2.5。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
293312資訊: 如何取得最新的 MDAC 2.5 Service Pack
此修正程式的 MDAC 2.5 SP2 版本應該具有下列檔案屬性:
   Date         Version       Size     File name     Platform
   ----------------------------------------------------------
   25-Jun-2001  2.52.7625.0   483,600  Oledb32.dll   x86
				

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的問題。這個問題,首先已經在 Microsoft MDAC 2.5 Service Pack 3 中獲得修正。這個問題,首先已經在 Microsoft 資料存取元件 2.6 Service Pack 2 中獲得修正。

其他相關資訊

如果已安裝的 MDAC 2.5 SP2 的電腦上,就會發生這個問題,附加偵錯工具中收到下列的損毀堆疊:
Access violation - code c0000005 (first chance)
eax=00000000 ebx=00d25978 ecx=00d25978 edx=00000010 esi=041a58f0 edi=00d252f0
eip=6b7410f4 esp=0165fe14 ebp=0165fe24 iopl=0         nv up ei pl nz ac pe cy
cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00010213
MSDART32!MpHeapFree+66:
6b7410f4 f00fb10e         lock    cmpxchg [esi],ecx ds:0023:041a58f0=????????

MSDART32!MpHeapFree+0x66
MSDART32!mpFree+0x16
oledb32!FreeMPMallocedPropSets+0x4c
oledb32!CDBPROPContainer__ClearAllProperties+0xe
oledb32!CDBProperties__GetProperties+0x10c
oledb32!CDPO__UnlockedDCMGetProperties+0x48
oledb32!CDPO__GetProperties+0x32
					

屬性

文章編號: 301679 - 上次校閱: 2014年2月24日 - 版次: 4.2
這篇文章中的資訊適用於:
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6 Service Pack 1
  • Microsoft Data Access Components 2.6
關鍵字:?
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kbmdac260sp2fix KB301679 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:301679
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com