>>Whay wait till editing is done to start restoring record pointers? Maybe I am misunderstanding your situation, but I would restore them just after querying the subsequent views.
>
>An example from my app that displays this is the code below used when a record is deleted. I guess my use of Requery() makes me feel I'm forced to keep track of the pointer for the different views. Am I misusing the Requery() in-as-much as where/when I call it?
I don't think that you need to call it after you issue a TABLEUPDATE, unless you are providing for the possiblity of another user updating the record in that time.
Also, the code in the inner ELSE clause attempts to revert changes in a view that have already been committed. Perhaps you mean to revert changes to the table instead?
As an aside, I try to avoid double-buffering whenever possible for exactly these reasons- handling two-level updates gets messy.
>
>Select View1
>Delete
>If TABLEUPDATE(.T.,.T.,'View1')
> If TABLEUPDATE(.T.,.T.,'BaseTable')
> Requery('View1')
> Sele View2
> ThisForm.nRecNoView2 = ThisForm.nRecNoView2 -1
> Requery('View2')
> GOTO ThisForm.nRecNoView2
> Sele View3
> Requery('View3')
> GOTO ThisForm.nRecNoView3
> Else
> TableRevert('View1')
> Wait WINDOW 'Deletion Failed!' TIMEOUT 2
> Endif
>Else
> TableRevert('View1')
> Wait WINDOW 'Deletion Failed!' TIMEOUT 2
>Endif
>
Erik Moore
Clientelligence