>>Looks like this is going to be the best option. I just discovered something more about this whole process which means I can't use my own method in a consistent way anyway.
>>
>>This is the problem.
>>
>>With SET DELETED OFF:
>>
>>
SELECT id, firstname, lastname FROM tablename INTO CURSOR crsTemp
>>Will return deleted records with the deleted flag still set. However,
>>
>>
SELECT id, UPPER(firstname), UPPER(lastname) FROM tablename INTO CURSOR crsTemp
>>Will wipe out the deleted flag.
>>
>>UPPER() is just for illustrative purposes. Any function, or adding < something as field > in the select will wipe out the deleted flag. In some instances in this code, functions are used. So, it looks like your method is about the only way I can do what I need to.
>
>This makes (some) sense: the old record is/was deleted, but when any function was run it is a different/new record. If it is fast enough for your needs, great - most tricks to speed up one part can slow down other parts. Not that thinking about them is not fun <g>...
>
>regards
>
>thomas
Well, I've changed my code in about 6 different places now, and in fact, it is exceptionally simple to change from my code to add the "DELETED() as deletedrec" field and use that field rather than the deleted tag. In the end the code is
almost identical to what I was doing, so the change was easy.
It works well, and the worst one takes maybe a full second.