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