Subject | Out of memory |
---|---|
Author | Michael Vilhelmsen <Michael.Vilhelmsen@M |
Post date | 2003-02-10T08:43:18Z |
Hi
I have an appl. that contects to an Firebird DB (1.0).
In my appl. I have made a rutine, that select 228.000 records, and
parse through each of them.
For each record I call a stored procedure that either update another
record or insert a record.
That'll say it will update / insert up to 228.000 records.
Does two query both uses the same transaction.
Before starting I do a
if not MyTrans.active then
MyTrans.StartTransaction
After the rutine has run through I do
MyTrans.Commit
On a smaller dataset it completes with no error.
But on this bigger dataset (which I doesn't find that big) I get this
error:
Project xxx raised exception class EOutOfMemory with message "Out of
memory". Process stopped.
I get it running both from inside D5 and running my appl. alone.
I kept an eye on my Task manager and all the time I had at least 96
Mb of physical memory, and my swapfile wasn't used that much.
I have even tried running the program without any other programs
running on my machine at the same time.
Same result.
Is this caursed by my program, because it doesn't allocate enough
memory for it self ?
Can I change that ?
I know in Turbo Pascal 7 I could set some compiler directives to
increase the amount of memory available to my program.
Regards
Michael
I have an appl. that contects to an Firebird DB (1.0).
In my appl. I have made a rutine, that select 228.000 records, and
parse through each of them.
For each record I call a stored procedure that either update another
record or insert a record.
That'll say it will update / insert up to 228.000 records.
Does two query both uses the same transaction.
Before starting I do a
if not MyTrans.active then
MyTrans.StartTransaction
After the rutine has run through I do
MyTrans.Commit
On a smaller dataset it completes with no error.
But on this bigger dataset (which I doesn't find that big) I get this
error:
Project xxx raised exception class EOutOfMemory with message "Out of
memory". Process stopped.
I get it running both from inside D5 and running my appl. alone.
I kept an eye on my Task manager and all the time I had at least 96
Mb of physical memory, and my swapfile wasn't used that much.
I have even tried running the program without any other programs
running on my machine at the same time.
Same result.
Is this caursed by my program, because it doesn't allocate enough
memory for it self ?
Can I change that ?
I know in Turbo Pascal 7 I could set some compiler directives to
increase the amount of memory available to my program.
Regards
Michael