On Thu, 13 Mar 2008, Codebue Fabio - P-Soft wrote:
> 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 This is normal; the above just inserts a record in the metadata tables; Nothing is checked. Can you try changing it to MODULE_NAME 'pudf.dll' ? Michael. > > 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: [EMAIL PROTECTED] > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Michael Van > Canneyt > Sent: Thursday, March 13, 2008 9:52 AM > To: [EMAIL PROTECTED]; 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@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > > > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal