[fpc-pascal] Firebird UDF

Codebue Fabio - P-Soft f.codebue at p-soft.biz
Thu Mar 13 18:38:38 CET 2008


nothing todo...
ok restart:
library pudf;

{$mode objfpc}{$H+}

uses
  Classes,
  p_func in 'p_func.pas';

exports
  pround name 'p_round';

{$R pudf.res}

begin

//  DECLARE EXTERNAL FUNCTION pround
//   DOUBLE PRECISION, INTEGER
//   RETURNS DOUBLE PRECISION BY VALUE
//  ENTRY_POINT 'pudf_pround'  MODULE_NAME 'pudf';

end.                        

and

unit p_func;

{$mode objfpc}{$H+}

interface
  function p_round(var valore: double; ndec: integer): double; cdecl;

implementation

uses
  Classes, SysUtils;

function p_round(var valore: double; ndec: integer): double; cdecl;
var
  i: integer;
  risultato: double;
  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;
end.       

someone can compile and install?

I can... but when I try to execute

select round(123.1233, 2) as nrounded from rdb$database

always some error!!!



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  





More information about the fpc-pascal mailing list