FIX: OLE DB Provider Can Fail After Updating 512 Records Using Microsoft ActiveX Data Objects (314656)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 7.0

This article was previously published under Q314656

SYMPTOMS

When you use ActiveX Data Objects (ADO) and the Visual FoxPro OLE DB provider to add records to a table in a loop, the procedure may fail after approximately 512 records, and the following error message may appear:
Multiple-step operation generated errors. Check each status value.

RESOLUTION

To resolve this problem, obtain the latest service pack for Visual FoxPro for Windows 7.0. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

316964 How to Obtain the Latest Visual FoxPro for Windows 7.0 Service Pack

STATUS

Microsoft has confirmed that this is a problem in Microsoft Visual FoxPro for Windows 7.0. This problem was first corrected in Visual FoxPro for Windows 7.0 Service Pack 1.

MORE INFORMATION

Steps to Reproduce Behavior

To reproduce the problem, run the following code:
CD JUSTPATH(SYS(16))
CLOSE DATABASES ALL
RELEASE ALL
CLEAR ALL

CREATE DATABASE simple_data
CREATE TABLE 'SIMPLE.DBF' NAME 'SIMPLE' (RECID I NOT NULL, CALLID I NOT NULL)
ALTER TABLE 'SIMPLE' ADD PRIMARY KEY RECID TAG RECID
USE
CLOSE DATABASES ALL

LOCAL loConn AS ADODB.CONNECTION, ;
	loRs AS ADODB.Recordset, ;
	lnCounter AS INTEGER

loConn = CREATEOBJECT("ADODB.Connection")
loConn.OPEN([Provider=VFPOLEDB.1;Data Source=] + JUSTPATH(SYS(16,0)) + ;
	[;Mode=ReadWrite;Password="";Collating Sequence=MACHINE])

loRs = CREATE("ADODB.Recordset")
WITH loRs
	.ActiveConnection = loConn
	.CursorType= 3  && adOpenStatic
	.CursorLocation= 3  && adUseClient
	.LockType= 3  && adLockOptimistic
	.OPEN("simple")

	FOR lnCounter = 1 TO 1000
		@ 10, 10 SAY lnCounter
		.AddNew()
		.FIELDS("recid").VALUE = lnCounter
		.FIELDS("callid").VALUE = lnCounter
		.UPDATE
	ENDFOR
	.CLOSE
ENDWITH
loConn.CLOSE

loRS = NULL
loConn = NULL

RELEASE ALL
				

Modification Type:MajorLast Reviewed:2/26/2002
Keywords:kbbug kbCodeSnippet kbDatabase kbDSupport KB314656