>>LOCAL oca AS CursorAdapter >> >>SET ASSERTS ON >> >>******************** >>IF EMPTY(SYS(2000,"c:\test.dbf")) >> CREATE TABLE c:\test.dbf (testval C(10) NOCPTRANS) >> APPEND BLANK >> USE >>endif >>set multilocks on >>oca=createobject("cursoradapter") >>oca.alias="catest" >>oca.buffermodeoverride=5 >>oca.cursorschema="TESTVAL C(10)" >>oca.datasourcetype="ADO" >>*oca.mapbinary=.T. >>oca.selectcmd="Select * From test" >>oca.tables="test" >>oca.SendUpdates = .t. >>oca.updatablefieldlist="TESTVAL" >>oca.updatenamelist="TESTVAL test.TESTVAL" >>oca.keyfieldlist="TESTVAL" >> >>loConnDataSource = createobject('ADODB.Connection') >>loConnDataSource.ConnectionString = [Provider=VFPOLEDB.1;Data Source=c:\test.DBF;Password="";Collating Sequence=MACHINE;] >>loConnDataSource.Open() >>oca.DataSource = createobject('ADODB.RecordSet') >>oca.DataSource.CursorLocation = 3 && adUseClient >>oca.DataSource.LockType = 3 && adLockOptimistic >>oca.DataSource.ActiveConnection = loConnDataSource >>oca.cursorfill(.t.) >>SELECT catest >>**INSERT INTO CaTest VALUES ("Test") >>***GO BOTTOM >>replace testval WITH TRANSFORM(RECNO()) >> >>IF TABLEUPDATE(1) >>ELSE >> ASSERT .f. >> =AERROR(amessage) >> =MESSAGEbox(amessage(2)) >>ENDIF >>USE IN cATest >>>>This code always stops on ASSERT with "Microsoft Cursor Engine : Multiple-step operation generated errors. Check each status value."