FIX: Java OLE DB Simple Provider Does Not Work Reliably (225047)



The information in this article applies to:

  • Microsoft Visual J++ 6.0
  • OLE DB Simple Provider Toolkit 2.0
  • Microsoft Data Access SDK 2.0
  • Microsoft Data Access SDK 2.01
  • Microsoft Data Access SDK 2.1
  • Microsoft Data Access Components 2.1 (GA)
  • Microsoft Data Access Components 2.5

This article was previously published under Q225047

SYMPTOMS

An OLE DB Provider created using the Visual J++ 6.0 and the OLE DB Simple Provider Toolkit does not work reliably. When attempting to use such a provider from ActiveX Data Object (ADO) via the Recordset.Open() method, the following error occurs:
-2147217865 (0x80040E37) Description unavailable.
The following application error may occur when using the provider from a Visual J++ or Visual Basic client:
The instruction at '0x7c00ba36' referenced memory at '0x00000004'. The memory could not be 'read'.
The following application error may occur when using the provider from a Visual C++ client:
Unhandled exception in <program.exe> (MSJAVA.DLL): 0xC000005: Access Violation

CAUSE

The Microsoft OLE DB Simple Provider component (Msdaosp.dll) does not properly implement COM reference counting. This causes erratic results with any client of the provider, because the provider may release itself when its real reference count is greater than zero.

RESOLUTION

This problem has been fixed with Microsoft Data Access Components (MDAC) 2.1 Service Pack 2 (SP2). You can download the latest MDAC from the following Microsoft Universal Data Access Web site:

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

The new release of MDAC also fixes a problem in the Java OLE DB Simple Provider, which causes access violation errors when using the Recordset.Delete() method.

REFERENCES

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

236044 Java OLE DB Simple Provider Crashes in Recordset.Delete() Method


Modification Type:MajorLast Reviewed:12/5/2003
Keywords:kbBug kbDatabase kbfix kbMDAC210SP2fix KB225047