Hola compañeros del foro... Gracias por la ayuda que medieron en el mensaje anterior que puse en el foro...
Me he iniciado en el mundo de Firebird y he estado aprendiendo y viendo el potencial de los procedimientos almacenados.
Código SQL
[-]SET TERM ^ ;
CREATE PROCEDURE MUESTRA_CAJA (
RAZONSOCIAL INTEGER)
RETURNS (
DESCRIPCION VARCHAR(40),
FECHA DATE,
TIPO VARCHAR(20),
MONEDA VARCHAR(40),
INDICE NUMERIC(15,2),
MONTO NUMERIC(15,2),
MONTO_TOTAL INTEGER)
AS
DECLARE VARIABLE MONEDA_V SMALLINT;
DECLARE VARIABLE TIPO_V SMALLINT;
begin
for select mov_caja.descripcion_caj,mov_caja.fecha_caj,
mov_caja.tipo_caj,mov_caja.moneda_caj,
mov_caja.indice_caj, mov_caja.monto_caj,
(mov_caja.monto_caj * mov_caja.indice_caj)
from mov_caja
where mov_caja.entidad_caj=:razonsocial
into :descripcion, :fecha, :tipo_v, :moneda_v, :indice,
:monto, :monto_total do
suspend;
end
^
SET TERM ; ^
GRANT SELECT ON MOV_CAJA TO PROCEDURE MUESTRA_CAJA;
GRANT EXECUTE ON PROCEDURE MUESTRA_CAJA TO SYSDBA;
De una tabla llamada 'mov_caja' traigo los campos de cada registro y los almaceno en parametros de salida, excepto en dos variables ('tipo_v' y 'moneda_v') que mi idea es preguntar por los valores y luego en el caso de la variable 'tipo_v' que es smallint si es = 1 asignar en el parametro de salida 'tipo' que es string el valor 'Entrada' y si es = 2 el valor 'Salida'. Lo intente con un IF pero me sale un solo registro. Para que aparezca 'Entrada' o 'Salida' en cada registro como puedo hacer.
Saludos y gracias....