FIX: Access Violation in IDBProperties::GetProperties When You Use OLE DB Service Components

This article was previously published under Q301679
This article has been archived. It is offered "as is" and will no longer be updated.
SYMPTOMS
When a multithreaded application uses the OLE DB service components, if the application uses the same IDBProperties interface pointer to call the IDBProperties::GetProperties method simultaneously in two different threads, the call to GetProperties may fail with E_UNEXPECTED, or you may receive an access violation.

If you are using Microsoft Data Access Components (MDAC) 2.5 Service Pack 2 (SP2), an access violation occurs. If you are using MDAC 2.6 SP1, E_UNEXPECTED is returned. In both cases, the call succeeds because the interface supports multithreaded access.
RESOLUTION

MDAC 2.6 SP1

To resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.6. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
300635 INFO: How to Obtain the Latest MDAC 2.6 Service Pack
The MDAC 2.6 SP1 version of this fix should have the following file attributes:
   Date         Version       Size     File name     Platform   ----------------------------------------------------------   20-Jul-2001  2.61.7720.0   459,024  Oledb32.dll   x86				

MDAC 2.5

To resolve this problem, obtain the latest service pack for Microsoft MDAC 2.5. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
293312INFO: How to Obtain the Latest MDAC 2.5 Service Pack
The MDAC 2.5 SP2 version of this fix should have the following file attributes:
   Date         Version       Size     File name     Platform   ----------------------------------------------------------   25-Jun-2001  2.52.7625.0   483,600  Oledb32.dll   x86				

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft MDAC 2.5 Service Pack 3. This problem was first corrected in Microsoft Data Access Components 2.6 Service Pack 2.
MORE INFORMATION
If this problem occurs on a computer that has MDAC 2.5 SP2 installed, you receive the following crash stack in an attached debugger:
Access violation - code c0000005 (first chance)eax=00000000 ebx=00d25978 ecx=00d25978 edx=00000010 esi=041a58f0 edi=00d252f0eip=6b7410f4 esp=0165fe14 ebp=0165fe24 iopl=0         nv up ei pl nz ac pe cycs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00010213MSDART32!MpHeapFree+66:6b7410f4 f00fb10e         lock    cmpxchg [esi],ecx ds:0023:041a58f0=????????MSDART32!MpHeapFree+0x66MSDART32!mpFree+0x16oledb32!FreeMPMallocedPropSets+0x4coledb32!CDBPROPContainer__ClearAllProperties+0xeoledb32!CDBProperties__GetProperties+0x10coledb32!CDPO__UnlockedDCMGetProperties+0x48oledb32!CDPO__GetProperties+0x32					
multi-threaded AV
속성

문서 ID: 301679 - 마지막 검토: 02/27/2014 21:09:02 - 수정: 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 kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kbmdac260sp2fix KB301679
피드백