Hola a todos!
Utilizo FireBird 1.5.1, Delphi 7 y Windows XP; tengo problemas con los parámetros en las UDF's.
Escribí la siguiente función en una librería y la coloque en la carpeta <DIR_INSTAL_FIRBIRD>\UDF
Código Delphi
[-]
library Project1;
{$E DLL}
{$R *.res}
function TEST(Value:Integer):Integer;cdecl;export;
begin
Result:=Value*10;
end;
Exports
TEST;
begin
end.
Posteriormente declare la función y un procedimiento para llamarla en mi base de datos.
Código SQL
[-]
DECLARE EXTERNAL FUNCTION T1
INTEGER
RETURNS INTEGER BY DESCRIPTOR
ENTRY_POINT 'TEST' MODULE_NAME 'project1'
Código SQL
[-]
CREATE PROCEDURE PRUEBA
RETURNS ( VAL INTEGER )
AS
BEGIN
VAL=T1(10);
END
Si ejecuto el procedimiento me muestra lo siguiente:
Procedure executing results:
VAL = 193302400
Obviamente este no es el resultado que debería devolver y en general cualquier función que utilizo con parámetros
INTEGER o
DOUBLE tiene el mismo comportamiento.
Espero que alguién pueda ayudarme a resolverlo.
De ante mano muchas gracias.