Ver Mensaje Individual
  #1  
Antiguo 18-08-2006
pichi Vignola pichi Vignola is offline
Miembro
 
Registrado: abr 2006
Posts: 25
Reputación: 0
pichi Vignola Va por buen camino
Aprendiendo sobre procedimientos almacenados

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

  /*if (:tipo_v=1) then tipo='Entrada';*/
  /* Procedure Text */
  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....
Responder Con Cita