@ludob I think you missed the point of what I was doing (and I probably didn't make it too clear) I'm deleting from one query and refreshing a
different query which is also using other tables as well as the people table, obviously when you do a refresh you loose the cursors position...
even if you were to next on the other query and record the ID for use after the delete you'd still need a corner case for the last record...
While your advice to keep an eye on random queries is pertinent in situations where you are doing large batches of queries, when you're messing around with cursor positions its almost always for user interface reason, which by definition is low volume, it really is ok to allow SQL logic to take some of the strain.
Just supposing you had the unlikely situation of two hundred clients all deleting records at (even exactly) the same time do you think there would really be much difference in terms of performance?
@BigChimp you *could* do all that or just run a single query and a single locate...

There is no "right" or "wrong" solution to this and many similar problems like this - but it always is worth discussing the merits of different approaches...