Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 3 of 3 total
Thread MyStream.Free
Thu, Feb 11 2010 4:39 AMPermanent Link

"Petter Topp"
Hi.

I have been implementing my dbisam application with a customer, and have  
experienced problems with a certain part of the app.
In this case I have discovered that I have forgotten to free a stream.

MyStream:= CreateBlobStream('MyField', bmWrite);
Listbox.Items.SaveToStrem(MyStream);

How would/could a missing free of MyStream affect my application?
The symptoms I'm experiencing is that that the application hangs  
presumably on posting of data.


--
Best Regards
Petter Topp


Sent using Opera newsreader: http://www.opera.com/
Thu, Feb 11 2010 1:59 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Petter,

<< How would/could a missing free of MyStream affect my application? The
symptoms I'm experiencing is that that the application hangs presumably on
posting of data. >>

See here in the manual:

http://www.elevatesoft.com/manual?action=mantopic&id=dbisam4&product=d&version=7&category=1&topic=30

at the very bottom:

"Note
For proper results when updating a BLOB field using a TDBISAMBlobStream
object, you must create the TDBISAMBlobStream object after calling the
Append/Insert or Edit methods for the dataset containing the BLOB field.
Also, you must free the TDBISAMBlobStream object before calling the Post
method to post the changes to the dataset. Finally, be sure to use the
proper open mode when creating a TDBISAMBlobStream object for updating
(either bmReadWrite or bmWrite)."

The freeing of the stream causes the record to be properly updated so that
the BLOB field is flagged as modified.  However, it shouldn't cause a hang
if you don't free the stream properly.

Are you freeing the stream much later, or never ?

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Feb 12 2010 2:57 AMPermanent Link

"Petter Topp"
Hi Tim.

In this case the stream was never freed/destroyed.
I have now freed the stream, and it seem that this has made things more  
predictable....

Petter

> Petter,
>
> << How would/could a missing free of MyStream affect my application? The
> symptoms I'm experiencing is that that the application hangs presumably  
> on
> posting of data. >>
>
> See here in the manual:
>
> http://www.elevatesoft.com/manual?action=mantopic&id=dbisam4&product=d&version=7&category=1&topic=30
>
> at the very bottom:
>
> "Note
> For proper results when updating a BLOB field using a TDBISAMBlobStream
> object, you must create the TDBISAMBlobStream object after calling the
> Append/Insert or Edit methods for the dataset containing the BLOB field.
> Also, you must free the TDBISAMBlobStream object before calling the Post
> method to post the changes to the dataset. Finally, be sure to use the
> proper open mode when creating a TDBISAMBlobStream object for updating
> (either bmReadWrite or bmWrite)."
>
> The freeing of the stream causes the record to be properly updated so  
> that
> the BLOB field is flagged as modified.  However, it shouldn't cause a  
> hang
> if you don't free the stream properly.
>
> Are you freeing the stream much later, or never ?
>


--
Sendt med Operas revolusjonerende e-postprogram: http://www.opera.com/mail/
Image