Problema com UDF

10/11/2004

0

Colegas,

Segue abaixo minha dll, feita em Delphi7:

...
function RetZero(Formato: string; Numero: integer): string; cdecl; export;
...
function RetZero(Formato: string; Numero: integer): string;
begin
  result := FormatFloat(Formato, Numero);
end;
...
exports
  RetZero;

begin

end.


E no Interbase 7.1:

DECLARE EXTERNAL FUNCTION RETZERO
CSTRING(256) CHARACTER SET NONE, INTEGER
RETURNS CSTRING(256) CHARACTER SET NONE
ENTRY_POINT ´RetZero´ MODULE_NAME ´UDFInterbase´;


Beleza... O IB criou minha função certinho, mas, quando eu chamo a função:

SELECT RETZERO(´000000´, 9) FROM RDB$DATABASE

É me retornado um erro de Database Connection Lost, ou algo parecido...

P.S: A função recebde doi parâmetros (Formato - quantidade de zeros) e o número a ser formatado. O objetivo é:

Ao digitar 9 retornar 000009.

[]´s


Michaell

Michaell

Responder

Posts

10/11/2004

Afarias

a não ser q vc esteja usando o gerenciador de memória da borland (BORLANDMM.DLL) vc não devia exportar funções com parâmetros STRING

Use PCHAR

Sugiro tb q veja o código fonte de outras bibliotecas já estáveis feitas em Delphi para tomar como exemplo.


T+


Responder

22/12/2004

Christian_adriano

Olá afarias,

Estou com uma Duvida

Se eu tiver um UDF :

function SerialHD : String;
.....

Como eu faço pra declarar no ib/fb ?

Tentei o seguinte:
DECLARE EXTERNAL FUNCTION GETHD
RETURNS CSTRING(15) FREE_IT
ENTRY_POINT ´SerialHD´ MODULE_NAME ´GetHD´

Obs. Executar normalmente, mais quando eu dou um Select dá erro.
Ex. Select GetHD from Tabela

Desde já agradeço atenção.

[]´s.

Christian.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar