Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Procedimiento Almacenado (https://www.clubdelphi.com/foros/showthread.php?t=34651)

pichi Vignola 16-08-2006 22:56:38

Procedimiento Almacenado
 
Hola compañeros del Foro...

Estoy iniciandome en el tema de los procedimientos almacenados y quiciera saber si un procedimiento almacenado puede devolver màs de un registro con resultados. Por ejemplo, tenemos una tabla con las cuotas que han pagado los socios y otra con los datos personales de los socios. Por cada socio tenemos una o màs cuotas pagas o registradas. Se puede hacer un procedimiento que me muestre el nombre de cada socio y la suma o el monto total de las cuotas pagas. Me tendrà que mostrar tantos registros como socio tenga la tabla y el monto.


Saludos y gracias....

bismarck_sierra 17-08-2006 01:02:13

Que tal

Te recomiendo que descargues la Cara Oculta del C++ Builder, ahi viene bien explicado para empezar con los procedimientos almacenados en Interbase, ya sólo tendrías que ver algunas mejoras que se hicieron en Firebird 1.5 que no son muchas pero eso si muy útiles.

http://www.classiquecentral.com/dscb4.zip

En la página 99 empieza con los SP, y en la página 106 "Procedimientos que devuelven un conjunto de datos"

Espero te sirva

Saludos
Bismarck

Lepe 17-08-2006 01:07:38

Si... claro que si.

Se trata de capturar los valores de un registro y guardarlo en variables (bien locales, o bien los parámetros de salida), hacer la suma de cuotas y despues devolver los datos al ordenador que los solicita (suspend)
Código SQL [-]
CREATE PROCEDURE TOTALCUOTA 
RETURNS (
   NombreCliente varchar(80),
    TOTAL NUMERIC(10,2)
)
AS
DECLARE VARIABLE codCliente INTEGER;
begin
   for Select Nombre, codigo from Clientes
   into :NombreCliente, :CodCliente do
   begin
    SELECT SUM(IMPORTE)  FROM cuotas
    WHERE cuotas.CodigoCliente = :codCliente
    INTO :Total;
  
    suspend;
   end;
end

...Espero se entienda. Saludos


La franja horaria es GMT +2. Ahora son las 19:12:25.

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