Hola.
No, el tipeado en Firebird es fuerte, los parámetros de entrada y salida deben tener un tipo determinado.
Tienes varias opciones.
A) En lugar de devolver un único valor, siempre devuelves tres valores, una cadena, un entero y un numérico (result_cadena, result_entero, result_numerico). En función del parámetro de entrada rellenas el parámetro de salida que corresponda (y tu aplicación Delphi, en función del parámetro de entrada, tendrá que leer el correspondiente parámetro de salida).
B) Haz que el SP devuelva siempre una cadena, puesto que en una cadena puedes poner un valor entero o numérico. Asi pués tienes que hacer
result = cast(:lo_que_sea as varhcar(100))
Naturalmente tu programa Delphi tendrá que volver a pasar esa cadena a Entero o Float, en función del parámetro de entrada (StrToInteger o StrToFloat)
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
|