Article ID: 228935
Article Last Modified on 7/28/2003
APPLIES TO
- Microsoft ActiveX Data Objects 2.0
- Microsoft ActiveX Data Objects 2.01
- Microsoft ActiveX Data Objects 2.1
- Microsoft ActiveX Data Objects 2.5
- Microsoft OLE DB Provider for Jet 3.51
- Microsoft OLE DB Provider for Jet 4.0
- Microsoft Data Access Components 2.0
- Microsoft Data Access Components 2.1
- Microsoft Data Access Components 2.5
This article was previously published under Q228935
SYMPTOMS
If a WITH statement is used to store an empty string value to one field and an uninitialized string to the very next field, an error will occur when using the Microsoft OLE DB Provider for Jet 3.51 or 4.00 that shipped with MDAC versions prior to 2.5. The error that will occur is as follows on version MDAC versions prior to 2.5:
On MDAC 2.5 installations using the OLE DB Provider for Jet 3.51 the following error will occur:
No error will occur on MDAC 2.5 using the OLE DB Provider for Jet 4.0 that shipped with it, specifically version 4.0.2927.4.
RESOLUTION
If it is still necessary to use the OLE DB Provider for Jet 3.51 or MDAC versions prior to 2.5 then it will be necessary to make sure all variables are properly initialized. Otherwise this problem is resolved in the OLE DB Provider for Jet 4.0 that shipped with MDAC 2.5, specifically version 4.0.2927.4.
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
Steps to Reproduce Behavior
NOTE: Change the DBPath variable to point to an .mdb file.
- Start Visual Basic 6.0.
- Create a Standard EXE Project.
- Set the following Project Reference:
Microsoft ActiveX Data Objects Library
Paste the following code into the default form:
Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim strSQL As String Dim DBPath As String Dim emptystring As String 'If this is initialized it does not error. 'emptystring = "" Set CN = New ADODB.Connection Set RS = New ADODB.Recordset DBPath = "D:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB" On Error Resume Next 'for table drop & creation With CN .ConnectionString = "Data Source=" & DBPath .Provider = "Microsoft.Jet.OLEDB.3.51" .Open .Execute "drop table testit" .Execute "Create table TestIt (Fld1 Text(10), Fld2 Integer, Fld3 Text(10))" End With On Error GoTo 0 'for table drop & creation strSQL = "select * from Testit" RS.Open strSQL, CN, adOpenKeyset, adLockOptimistic RS.AddNew With RS !Fld1 = "" !Fld3 = emptystring '"Errors Occurred." End With
- Run the form.
Keywords: kbbug kbfix kbmdac250fix kbdatabase kbjet kbmdacnosweep KB228935