PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum UDF quot;Dias em um mêsquot; #51340

16/06/2005

0

Olá!

Estou precisando criar uma UDF com a função DaysInAMonth do Delphi. Segue abaixo o código *.pas da dll:

uses Classes, SysUtils, DateUtils;

function fDaysInAMonth(year, month: word): integer; export;

implementation

function fDaysInAMonth(year, month: word): integer;
var tmp1,tmp2:word;
    teste:TStringList;
begin
   teste := tstringlist.Create;
   tmp1 := year;
   tmp2 := month;
   Result := DaysInAMonth(tmp1,tmp2);
   teste.add(inttoStr(result));
   teste.savetofile(´C:\result.txt´);
   FreeAndNil(teste);
end;


Para declarar a função no banco usei o seguinte:

DECLARE EXTERNAL FUNCTION FDAYSINAMONTH
INTEGER, INTEGER
RETURNS INTEGER BY VALUE 
ENTRY_POINT ´fDaysInAMonth´ MODULE_NAME ´SCNUDF.dll´;


Quando fui testar a função está me retornando 13744, ou melhor, um valor errado. Já testei declarar na dll os parâmetros como integer ao invés de Word, mas o resultado é o mesmo. E reparem que coloquei na rotina uma stringlist para salvar em um txt o resultado que a função obtém antes de mandar para o firebird. E o resultado é realmente 13744. Porque a função está obtendo o valor errado?

Até!


Delphi32

Delphi32

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar