[fpc-pascal] Firebird UDF
Codebue Fabio - P-Soft
f.codebue at p-soft.biz
Thu Mar 13 09:58:23 CET 2008
I create a pudf.dll library an put in UDF subdirectory of firebird
installation (where you can find other UDFs)
after this I use IBExpert to run the script
DECLARE EXTERNAL FUNCTION pround
DOUBLE PRECISION, INTEGER
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'pround' MODULE_NAME 'pudf';
it run ok, I find another udf under functions category with paremeter set
correctly
Codebue Fabio
.-----------------------------.
_ \ __| _||
__/____|\__ \ _ \ _| _|
_| ____/\___/_| \__|
P-Soft di Codebue Fabio & C. sas
via B.Storti, 19
24060 - Chiuduno - BG
Italy
Phone: +39.030.839435
Fax: +39.030.5100306
Mobile: +39.348.3515786
.-----------------------------.
Web : www.p-soft.biz
EMail: f.codebue at p-soft.biz
-----Original Message-----
From: fpc-pascal-bounces at lists.freepascal.org
[mailto:fpc-pascal-bounces at lists.freepascal.org] On Behalf Of Michael Van
Canneyt
Sent: Thursday, March 13, 2008 9:52 AM
To: f.codebue at p-soft.biz; FPC-Pascal users discussions
Subject: Re: [fpc-pascal] Firebird UDF
On Thu, 13 Mar 2008, 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?
Where did you put the library, what is the library name ?
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal at lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list