Subject | RE: [firebird-support] *** possible bug in FB 2.5.2 supperclassic with UDF *** solved |
---|---|
Author | Wodzu |
Post date | 2013-11-28T19:36:29Z |
Hello, there is an excellent article about UDFs and memory management: http://www.ibphoenix.com/resources/documents/how_to/doc_307
From: firebird-support@yahoogroups.com [mailto:firebird-support@yahoogroups.com] On Behalf Of fabianoaspro@...
Sent: Thursday, November 28, 2013 5:00 PM
To: firebird-support@yahoogroups.com
Subject: Re: [firebird-support] *** possible bug in FB 2.5.2 supperclassic with UDF *** solved
Greath!
Very glad you solved this problem with my tip =)
Also, there are more pitfalls when building a UDF using Delphi (maybe another languages too). I agree with you that this must be added to Firebird's FAQ, maybe with a link to some document explain all pitfalls.
Fabiano.
2013/11/28 ICAMSoft <icamsoft@...>
Thanks for anybody who replied and
again my apology for the easiness i charged firebird for the problem...
The problem's reason and the solution for any who may concern:
As some of repliers said the problem was in memory management of delphi under concurrent threads.
After 15 years using delphi, i discovered by googling the variable IsMultiThread
Adding in initialization section the following line
IsMultiThread :=true;
everything is ok, also using superclassic (at least in my machine).
PS1: <IsMultiThread :=true> is silently done by Delphi itself, if threads exist in the uses list. Bad for me, my functions where pretty simple and so threads unit was not declared in uses.
PS2: I think that this could be a major trap for many delphi programmers and that a relative note in documentation about UDF with Delphi in http://www.firebirdfaq.org/faq83/ should be added
Best Regards
A.Kyriakos
Athens, Greece