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 ENDIFChristian