Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-08-2006
pichi Vignola pichi Vignola is offline
Miembro
 
Registrado: abr 2006
Posts: 25
Poder: 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
  #2  
Antiguo 18-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Un nimio detalle... te falta un Begin... end

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
begin // aqui

  if (:tipo_v=1) then tipo='Entrada'
  else
    tipo := '¿que pongo aqui?' //  

  suspend;
end; // y aqui
end
^
SET TERM ; ^
GRANT SELECT ON MOV_CAJA TO PROCEDURE MUESTRA_CAJA;
GRANT EXECUTE ON PROCEDURE MUESTRA_CAJA TO SYSDBA;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
procedimientos almacenados datorar Conexión con bases de datos 8 03-01-2006 18:05:43
Aprendiendo sobre Procedimientos Almacenados Gabriel2 Firebird e Interbase 5 28-12-2005 13:42:50
Procedimientos Almacenados tuto Conexión con bases de datos 0 08-11-2004 15:42:05
Duda sobre Procedimientos Almacenados SaurioNet SQL 2 06-04-2004 09:24:05
Procedimientos almacenados VS UDF rqc Firebird e Interbase 6 18-03-2004 02:29:46


La franja horaria es GMT +2. Ahora son las 19:49:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi