>IF !USED('test') > CREATE TABLE test (pk I, field1 C(20)) >ENDIF > >ZAP IN test >FOR m.xj = 1 TO 10 > INSERT INTO test VALUES(m.xj, 'Test ' + TRANSFORM(m.xj)) >ENDFOR > >SELECT test >LOCATE > >LOCAL pk_value >m.pk_value = test.pk > >LOCAL loAdapter AS CursorAdapter >loAdapter = CREATEOBJECT('CursorAdapter') >loAdapter.DataSourceType = "NATIVE" >loAdapter.Alias = 'v_test' >loAdapter.SelectCmd = 'SELECT * FROM test WHERE pk = m.pk_value' >loAdapter.BufferModeOverride = 3 && change to 5 and the code will raise error 1545 as expected >loAdapter.SendUpdates = .T. >loAdapter.Tables = 'test' >loAdapter.KeyFieldList = 'pk' >loAdapter.UpdatableFieldList = 'pk, field1' >loAdapter.UpdateNameList = 'pk test.pk, field1 test.field1' > >IF loAdapter.CursorFill() > > replace field1 WITH 'changed' IN v_test > > IF !loAdapter.CursorRefresh() > &&IF !loAdapter.CursorFill() > AERROR(laError) > DISPLAY MEMORY LIKE laError > ELSE > ? 'CursorFill/Refresh succeeded' > SELECT test > LOCATE FOR pk = m.pk_value && the first CursorFill changes recno > ? 'Value in Cursor: ' + test.field1 > ? 'Value in CA: ' + v_test.field1 > ENDIF >ELSE > AERROR(laError) > DISPLAY MEMORY LIKE laError >ENDIF >>