PDA

Ver la Versión Completa : Como Obtener un Tipo de dato Variante


berna
29-10-2010, 21:56:12
Buenas Tardes....

Me podrian orientar, sobre si existe la posibilidad de utilizar un campo
variante en un SP en FIrebird, mas especifico requiero utilizar un SP que me devuelva un valor entero, cadena o numerico dependiendo de un parametro de entrada.

guillotmarc
30-10-2010, 18:16:34
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.

berna
02-11-2010, 19:14:01
Gracias ... Asi es como lo solucione mandando los tres parametros y en delphi checar cual seria el tipo de parametro.....

Muchas Gracias