Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 7 of 7 total
Thread Error #10030
Thu, Jul 11 2013 11:04 AMPermanent Link

Darren

Is there a limit to a memo field size, or at least with referencing it asstring? I have a table with a memo field. In a test, I keep adding a string to that field in a loop. Each time, at the same point, after about 1.4 meg in the blob field, I get the #10030 error and the table/blob field is corrupted. I repair the table and lose the blob data. Pretty simple test with the following rough code, error after about 12858 iterations:

myStr := 'This is an error line.This is an error line.This is an error line.This is an error line.This is an error line.'

loop start...

inc(cntr);
tblTest.Edit;
tblTest.FieldByName('MemoField').AsString := tblTest.FieldByName('MemoField').AsString + #13 + #10 + myStr;
tblTest.Post;

loop end...
Fri, Jul 12 2013 1:32 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Darren,

<< Is there a limit to a memo field size, or at least with referencing it
asstring? I have a table with a memo field. In a test, I keep adding a
string to that field in a loop. Each time, at the same point, after about
1.4 meg in the blob field, I get the #10030 error and the table/blob field
is corrupted. I repair the table and lose the blob data. Pretty simple test
with the following rough code, error after about 12858 iterations: >>

What version/build of DBISAM are you using ?

Tim Young
Elevate Software
www.elevatesoft.com
Fri, Jul 12 2013 1:45 PMPermanent Link

Darren

"Tim Young [Elevate Software]" wrote:

Darren,

I tried with 4.31b3 at first, then to verify it was not a corrected issue, I tried with 4.36b1. Same results both times.


<< Is there a limit to a memo field size, or at least with referencing it
asstring? I have a table with a memo field. In a test, I keep adding a
string to that field in a loop. Each time, at the same point, after about
1.4 meg in the blob field, I get the #10030 error and the table/blob field
is corrupted. I repair the table and lose the blob data. Pretty simple test
with the following rough code, error after about 12858 iterations: >>

What version/build of DBISAM are you using ?



Tim Young
Elevate Software
www.elevatesoft.com
Fri, Jul 12 2013 3:19 PMPermanent Link

Darren

Darren wrote:

"Tim Young [Elevate Software]" wrote:

I forgot to mention that the first error Delphi spits out is an out of memory error at in the ResizeWriteBuffer call, ResizeBuffer is being called with params of (1491456,nil,0). The error happens in the line:

BufferToResize := AllocMem(Value);  which is 1491456. When I try this line of code in a test program by itself, no error.

then the #10030 pops up.

Darren,

I tried with 4.31b3 at first, then to verify it was not a corrected issue, I tried with 4.36b1. Same results both times.


<< Is there a limit to a memo field size, or at least with referencing it
asstring? I have a table with a memo field. In a test, I keep adding a
string to that field in a loop. Each time, at the same point, after about
1.4 meg in the blob field, I get the #10030 error and the table/blob field
is corrupted. I repair the table and lose the blob data. Pretty simple test
with the following rough code, error after about 12858 iterations: >>

What version/build of DBISAM are you using ?



Tim Young
Elevate Software
www.elevatesoft.com
Mon, Jul 15 2013 8:35 AMPermanent Link

Darren

Went back and tried with 4.26b3 and it did not have a problem at the same location, I finally killed the program after 32,000 iterations. Maybe related to the change in the way blobs are handled?
Mon, Jul 15 2013 12:48 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Darren,

<< I forgot to mention that the first error Delphi spits out is an out of
memory error at in the ResizeWriteBuffer call, ResizeBuffer is being called
with params of (1491456,nil,0). The error happens in the line:

BufferToResize := AllocMem(Value);  which is 1491456. When I try this line
of code in a test program by itself, no error.

then the #10030 pops up. >>

Are you executing your loop in a transaction at all ?  If not, then most
likely you're running into a memory manager issue due to the buffer resizes.
Are you using FastMM4, or the default memory manager in Delphi, and what
version of Delphi are you using ?

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Jul 15 2013 1:37 PMPermanent Link

Darren

"Tim Young [Elevate Software]" wrote:

Darren,

<<Are you executing your loop in a transaction at all ?  If not, then most
likely you're running into a memory manager issue due to the buffer resizes.
Are you using FastMM4, or the default memory manager in Delphi, and what
version of Delphi are you using ?

Tim Young
Elevate Software
www.elevatesoft.com >>

I'm using Delphi6. I ran it with fastmm this time, and it got past that point and is still going. Thanks!
Image