PRESELECT gives you a snapshot -- IOW if you are changing the value of a field used in the index you won't see the record again.
Bad idea:
Code:
for each customer:
custNum = custNum + 10000.
end.
Better:
Code:
repeat preselect each customer:
find next customer.
custNum = custNum + 10000.
end.
It isn't that FOR EACH is bad -- but if you update a field used in the selection of the records you can be surprised.