You may recall that recently I posted a question asking why I was getting this. Thanks to all those who replied, but I beleive my colleagues and I have got to the reason why. (But not the answer.)
If you run this code: (use any report and table.)
USE <anytable>
last = VAL(SYS(1016))
FOR x = 1 TO 100000
WAIT WINDOW "x=" + STR(x) + ": Memory Handles:" + ;
SYS(1011) NOWAIT
? "Number:", x, " User Objects:", SYS(1016), " Mem Available:", SYS(1001), " Last:", last - VAL(SYS(1016)), " SYS(1011):", SYS(1011)
GO BOTTOM
REPORT FORM <anyreport> REST TO FILE mem.txt NOCONSOLE
last = VAL(SYS(1016))
ENDFOR
Eventually it will crash with insufficent memory. We found that the undocumented function sys(1011) shows the number of memory handles being used and that continually increases until fox falls over. Debugging shows it increases at the report form command (this does not happen in VFP6).
Any suggestions for answers to this extremly annoying problem would be gratefully received.
If you run this code: (use any report and table.)
USE <anytable>
last = VAL(SYS(1016))
FOR x = 1 TO 100000
WAIT WINDOW "x=" + STR(x) + ": Memory Handles:" + ;
SYS(1011) NOWAIT
? "Number:", x, " User Objects:", SYS(1016), " Mem Available:", SYS(1001), " Last:", last - VAL(SYS(1016)), " SYS(1011):", SYS(1011)
GO BOTTOM
REPORT FORM <anyreport> REST TO FILE mem.txt NOCONSOLE
last = VAL(SYS(1016))
ENDFOR
Eventually it will crash with insufficent memory. We found that the undocumented function sys(1011) shows the number of memory handles being used and that continually increases until fox falls over. Debugging shows it increases at the report form command (this does not happen in VFP6).
Any suggestions for answers to this extremly annoying problem would be gratefully received.