>>>Can anyone refer me to an authoritative and thorough resource for the many uses for this command? I work with data conversions/translations and use this command daily, but still don't grasp the finer nuances. Any help would be greatly appreciated!
>>
>>All SCAN...ENDSCAN really does is a DO WHILE loop with an implicit SKIP on each iteration. FOR allows you to specify a filter condition with an implied scope of ALL that examines all records meeting the criteria of the FOR clause; WHILE allows you to specify a filter with an implied scope of REST that terminates as soon as a record that does not meet the criteria of the WHILE condition is encountered.
>>
>
>There is one subtle difference between SCAN/ENDSCAN and DO WHILE. Don't move the record pointer of the table being scanned. It gives really unpredicatble results.
I know - the implicit SKIP creates a whole wealth of potential problems, including the accidental double SKIP, and more, ranging from not being sure exactly where the record pointer is after a new iteration starts, to not knowing if the filter condition broke because of repositioning the recorrd pointer. And probably a few really bizarre ones that I haven't seen