Subject Re: Database grows rapidly (3 to 770MB) when using BLOB views/UDFs
Author mircostange
> There's something rotten to my eye here. The declaration you gave
is:
> DECLARE EXTERNAL FUNCTION PROPXMAKEBITMAP
> BLOB, DOUBLE PRECISION
> RETURNS BLOB
> ENTRY_POINT 'ProPXMakeBitmap' MODULE_NAME 'ProPXUDF.dll';
>
> I think your true declaration is:
> DECLARE EXTERNAL FUNCTION PROPXMAKEBITMAP
> BLOB, DOUBLE PRECISION,
> BLOB returns parameter 3
> ENTRY_POINT 'ProPXMakeBitmap' MODULE_NAME 'ProPXUDF.dll';
>
Both versions seem to be supported with no difference. I tried your
declaration and it does not change anything.


> I think that isc_cancel_blob() is much better than isc_close_blob()
in your
> case because the returned blob will be taken by BLB_cancel()
internally.
> BLB_cancel() does an immediate job of trying to get rid of the db
pages
> allocated by the temporary blob. Instead, with the isc_close_blob()
path you
> rely on garbage collection to proceed later... maybe too late for
you, after
> the db has grown substantially.
>

Hm, my problem is that the client is Crystal Reports and access
happens through an ODBC driver (Gemini Soft). So there is no place
where I could bring in any of the calls you mentioned.

Mirco