Article ID: 230131 - Last Review: September 22, 2005 - Revision: 6.3 FIX: Access ODBC Keyset Cursor Becomes Corrupt After a DeleteThis article was previously published under Q230131 SYMPTOMS
After deleting a row and doing a MoveNext or MovePrevious, the current record is wrong.
Exhibited behavior indicates that the current record will either become another record from within the recordset or EOF depending on the size of the recordset. CAUSE
A bug was introduced in MDAC 2.1 affecting the behavior of the Access ODBC Driver keyset cursors.
RESOLUTION
To resolve this problem, upgrade to MDAC 2.1 Service Pack 2 or MDAC 2.5 or later. These versions of MDAC can be obtained from the download section at the following Microsoft Web site:
http://msdn.microsoft.com/en-us/data/aa937729.aspx
(http://msdn.microsoft.com/en-us/data/aa937729.aspx)
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. This problem was corrected in MDAC 2.1 SP2. MORE INFORMATION
The specific MDAC 2.1 DLL causing the problem is odbcjt32.dll. Version 4.0.3513.00 shipped with MDAC 2.1 that was included with SQL Server 7.0. Version 4.0.3711.08 of odbcjt32.dll shipped with MDAC 2.1 SP1. MDAC 2.1 SP1 has shipped with Office 2000 and is downloadable at the MDAC Web site. The following Visual C++ code in conjunction with the Microsoft sample Northwind database can be used to illustrate the behavior. It assumes that you used the MFC AppWizard to generate a CRecordset-derived class that wraps the Order Details table in nwind.mdb. The recordset must be opened as a CRecordset::dynaset to reproduce the problem: It appears that setting the ADO recordset property CacheSize to something other than 1 (the default) causes the bug to not appear:
| Article Translations
|

Back to the top
