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:
Para declarar a função no banco usei o seguinte:
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é!
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)