[fpc-pascal] RE: Firebird UDF
Crause, Christo (JC)
christo.crause at sasol.com
Thu Mar 13 09:55:01 CET 2008
> From: "Codebue Fabio - P-Soft"
...
> function pround(var valore: real; ndec: integer):real;export;
...
> DECLARE EXTERNAL FUNCTION pround
> DOUBLE PRECISION, INTEGER
> RETURNS DOUBLE PRECISION BY VALUE
> ENTRY_POINT 'pround' MODULE_NAME 'pudf';
>
> if I use it with an instruction like this
>
> select round(123.1233, 2) as nrounded from rdb$database
>
> I have back this error
>
> Invalid token.
> invalid request BLR at offset 59.
> function PROUND is not defined.
> module name or entrypoint could not be found.
>
> do you have some idea regarding this error?
I guess you made a typo in your select statement,
since it calls round, not pround.
It would appear that Firebird cannot load the
dll/so or find the entry point to the function
in the dll. Did you copy the dll/so to the UDF
subdirectory of your Firebird diretory? You
could also try adding the extension (.dll or .so)
to the name of the library. If you are using Linux
you should also check the permissions on the library
and make sure that Firebird can load it. If this
doesn't work, open the Firebird.conf file and check
what the value for UdfAccess is.
You may also have to change the calling convension of
your function to cdecl, since that is what Firebird expects.
Regards,
Christo
----------------------------------------------------------------------------
NOTICE: Please note that this eMail, and the contents thereof,
is subject to the standard Sasol eMail legal notice which may be found at:
http://www.sasol.com/legalnotices
If you cannot access the legal notice through the URL attached and you wish
to receive a copy thereof please send an eMail to
legalnotice at sasol.com
----------------------------------------------------------------------------
More information about the fpc-pascal
mailing list