Subject Re: [firebird-support] BLOB UDF Problem ...
Author Ivan Prenosil
Do you call isc_close_blob() immediately after fetching
each row/blob, or just after Select finishes, or never ?

Ivan

----- Original Message -----
From: "Intertex" <ib@...>
To: <firebird-support@yahoogroups.com>
Sent: Tuesday, January 18, 2005 4:50 AM
Subject: [firebird-support] BLOB UDF Problem ...


> Hello,
>
> I have a problem writing simple UDF for FB.
> I'm use Firebird-1.5.0.4290_embed_win32 and Delphi 7 for UDF.
> I have large table "Q" (over 50 000 records) that contain BLOB field.
> I want write small UDF that would read this BLOB field and make some
> changes.
>
> So, I try to use simple sample from
> borland: http://bdn.borland.com/article/0,1410,25785,00.html
>
> I have register my function exactly as in sample:
>
> declare external function fn_BlobCat
> Blob,
> Blob,
> Blob
> Returns parameter 3
> entry_point 'BlobCat'
> module_name 'BlobConcat.dll';
>
> Problem:
> When I try to load all records from my program
> SELECT
> fn_BlobCat(...)
> FROM
> Q;
>
> It's "eat" all my memory and work only on computers where 1GB of
> memory installed - if computer have less than 1GB - "Out of
> memory/system resources..." error appear. However, without UDF
> function I can read all records from this table.
>
> It's seems memory (BLOBs) not released after using any UDF function???
>
> Thanks