Codebue Fabio - P-Soft wrote:
This is my UDF source library pudf; {$mode objfpc}{$H+} uses Classes; function pround(var valore: real; ndec: integer):real;export; var i: integer; risultato: real; ndivisore: integer; begin risultato:= valore; ndivisore:= 1; for i:= 1 to ndec do begin risultato:= risultato*10; ndivisore:= ndivisore*10; end; result:= round(risultato)/ndivisore; end; exports pround name 'pround'; begin end. but after insert into my fdb with instruction 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?

1- You should use cdecl for your function

2- you should use pudf_pround as module entry name

3- use double instead of real

I hope this helps.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to