>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."