I don't know if this is your case, but I remember our team having a problem in SQL selects.
Th rows it retrieved where very volatile; after the first read they dissappeared. So the first step was to save them/copy them into a ST object and then process them. (this was due to the memory of each record been in a temporary memory buffer) As I mentioned before, I don't know if this is your case.