>I have a frustrating problem I can't figure out.
>
>I have a workcursor on a form created with
>CREATE CURSOR WORKSPEC FROM ARRAY aFFLDS
>
>When I am in a grid if I modify a field and tab out the command
>
>replace workspec.artno with 'blah'
>
>is executed.
>
>If I move up and back to the same field and type a new value
>the command
>
>replace workspec.artno with 'blah2'
>
>is executed.
>
>At this point I get the error "record locked by another user"
>
>The cursor is open excl
>buffering is set to 5
>
>In the command window I type
>UNLOCK
>REPLACE... &&same error
>
>UNLOCK ALL
>REPLACE... &&same error
>
>TABLEUPDATE
>REPLACE... &&same error
>
>TABLEUPDATE(.t.)
>REPLACE... &&same error
>
>TABLEREVERT()
>REPLACE... &&same error
>
>TABLEREVERT(.t.)
>REPLACE... &&same error
>
>Two questions. Why does it do this?
>Why can't I unlock it??
>I need the buffering to detect changes in the lines.
>
>Other grids built the same way do not have this behavior.
>
>Any ideas?
I struggled with this issue a while back. If my memory serves me right, it has to do with the fact that the grid has focus and it's trying to refresh itself, therefore, read thru all the records at the same time you're trying to update a record. The solution is to move focus off the grid, then do your REPLACE, then move focus back to the grid.
Hope this helps,
Cathy