>I cannot replicate with code -- even with THAT table while in a suspended state. That is what I was trying to convey with the latter part of the article. If I replace it manually thousands of times, no bloat -- only when it is done through this program.
>
>I cannot use a memory variable. The table is referenced recursively directly in hundreds of places.
You cannot? I could do that easily. Ok here is a sample:
SELECT * FROM employee INTO CURSOR xxEmployee readwrite
start = SECONDS()
FOR ix = 1 TO 1000
replace notes WITH REPLICATE('X',INT(RAND()*1000000))
ENDFOR
? SECONDS()-m.start
Keep an eye in task manager and temp folder. You'd see memo file going sky high (F5 at least once or you wouldn't).
Now try with:
SELECT * FROM employee INTO CURSOR xxEmployee readwrite
SCATTER NAME oRec memo
start = SECONDS()
FOR ix = 1 TO 1000
oRec.Notes = REPLICATE('X',INT(RAND()*1000000))
ENDFOR
? SECONDS()-m.start
Again checking in task manager.
First took over 17secs on my box. While the latter is under 1 sec with no negligible impact on memory/paging etc.
I don't understand why you can't use object instead.
Cetin