Subject Re: [firebird-support] UDF Function undefined
Author Helen Borrie
At 02:53 AM 4/09/2010, exactsoft wrote:
>Hi, sorry for my lack of experience with Firebird.
>I have a Database with Firebird 2.0 which has, as seen through a tool utility program such as Marathon, in its structure, a list of User Defines Functions (the standard ones, I mean) such as ABS() (absolute value).
>However, when I try to use it as in the following script:
>Select <integer field> from <Table> where ABS(<integer field>) > 100
>I always get the following error message:
>ERROR: invalid request BLR at offset 165
>ERROR: function ABS is not defined
>ERROR: module name or entrypoint could not be found
>Obviously, I get similar messages when trying to use it in my own application in Delphi 6.
>I suppose that I have made something wrong, but can't realise what it is. Is there any help you can send to me?
>Thank you very much.

You will need to use a more modern tool than Marathon, which has been dead for a very long time. To check which UDFs are declared in your database, you can either use isql (SHOW FUNCTIONS) or grab a more up-to-date GUI tool such as FlameRobin or IB_SQL.

From Firebird 1.5-onward (well after Marathon development ceased) UDF libraries moved into a default installation directory and acquired some security settings. The default location is (should be) the ..\UDF directory beneath Firebird installation root. If you are using an old database, it is fairly likely that your existing UDF declarations won't be valid any more.

If you are still assuming Firebird still works like InterBase 6, you will need to catch up on changes over the past 10 years. You can find documentation at