PDA

Ver la Versión Completa : Problemas al definir UDF (Funciones en una DLL)


pcicom
19-06-2006, 17:03:55
Saludos...

Tengo un problema al definir las UDF en mi BD Firebird 1.5, el problema radica que al definir las funciones de mi propia DLL, el programa me manda mensajes de error de que la funcion no esta definida o que existe un problema con la funcion...

Despues de hacer varias pruebas detecte lo siguiente...

En mi BD no funcionan las UDF definidas de mi DLL.. pero si creo una BD nueva y defino las UDF de mis funciones de mi DLL, entonces si funcionan, entonces creo entender que el problema es mi BD, entonces lo que quisiera saber es como puedo saber y/o reparar mi BD para que mis UDF funciones sin ningun problema..

Para testear he estado utlizando el IBEXPERT ...

AGAG4
21-06-2006, 00:22:24
Lo único que hago cuando pongo algunas UDF's nuevas:
1.-Le doy Shutdown al Firebird
2.-Copio el archivo .dll a la ruta C:\Archivos de programa\Firebird\Firebird_1_5\UDF
3.-Activo Firebird y Listo....

pcicom
21-06-2006, 05:49:15
Gracias por contestar... de echo lo que mencionas ya lo estoy realizando... he tenido problemas para crear una DLL que funcione con Firebird como una UDF..

En resumen esta es my funcion que necesito implementer



function Moratorios(nValor,nTasaM:Extended; dpHoy,dpVence,dpUPago:TDateTime):extended; cdecl;
Var
nDias,nTasaD,nInteres:Extended;

begin

nTasaD := (nTasaM * 12) / 365;
nDias := dHoy - dUPago;
nInteres := 0;
if nDias>0 then
nInteres := nValor * (nDias * nTasaD * 0.01);

Result := nInteres;

end;



Como ves la funcion es exageradamente simple, y mi problema con la DLL y la UDF es extremadamente GRANDE...



DECLARE EXTERNAL FUNCTION f_Moratorios
FLOAT,
FLOAT,
DATE,
DATE,
DATE
RETURNS FLOAT BY VALUE
ENTRY_POINT 'Moratorios' MODULE_NAME 'udf.dll'



Si me podrias echar una mano.. te agradeceria enormemente.... ya que tengo dias intentandolo...