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)
-   -   Por que no se actualiza mi Maldito Store Procedure? (https://www.clubdelphi.com/foros/showthread.php?t=47914)

IcebergDelphi 10-09-2007 23:43:14

Por que no se actualiza mi Maldito Store Procedure?
 
Hola Amigos llevo un dia batallando con un store procedure que necesito que cada que se haga un pago en la tabla de detalles , se actualize el total en la tabla principal o padre, mi store procedure en Firebird lo tengo de la siguiente manera:

Código Delphi [-]
SET TERM ^ ;

CREATE PROCEDURE "Sumariza_TablaPagos" (
    "Pe_DIdPagos" INTEGER,
    "Pe_IdGrupo" INTEGER)
AS
DECLARE VARIABLE "V_TotBonificacion" NUMERIC(10,2);
DECLARE VARIABLE "V_TotReservas" NUMERIC(10,2);
DECLARE VARIABLE "V_TotContingencia" NUMERIC(10,2);
DECLARE VARIABLE "V_TotCxS" NUMERIC(10,2);
DECLARE VARIABLE "V_TotInteres" NUMERIC(10,2);
DECLARE VARIABLE "V_TotCapital" NUMERIC(10,2);
DECLARE VARIABLE "V_TotMontoPagado" NUMERIC(10,2);
begin
     For Select  Sum("DetallePagos"."MontoPagado")as Pago,Sum("DetallePagos"."Capital")as Capital,Sum("DetallePagos"."Interes") as Interes
       From "DetallePagos"
     Where  "DetallePagos"."StatusPago"='PAGADO' and  "DetallePagos"."D_IdPagos"=:"Pe_DIdPagos" and "DetallePagos"."DP_ClaveGrupo"=:"Pe_IdGrupo"
     group by "DetallePagos"."D_IdPagos"
     Into :"V_TotMontoPagado",:"V_TotCapital",:"V_TotInteres"

/*Actualizamos la Tabla Pagos Con los Parametros registrados*/
   Do Begin
    Update "Pagos"
      Set "Pagos"."TotalPagos"=:"V_TotMontoPagado","Pagos"."TotCapital"=:"V_TotCapital","Pagos"."TotInteres"=:  "V_TotInteres"
         Where "Pagos"."IdPagos"=:"Pe_DIdPagos" and "Pagos"."P_IdGrupo"=:"Pe_IdGrupo";
   end

end
^
Ya en Delphi Uso un Componente del FibPlus el Store Procedure y cada que se hace un pago en la Tabla detalle lo llamo de la siguiente manera:

Código Delphi [-]
  V_IdPagos:=DataModuloMain.TDetallePagosD_IdPagos.Value;
         V_ClaveGrupo:=DataModuloMain.TDetallePagosDP_ClaveGrupo.Value;

        //Generamos La suma a la Tabla Pagos
                 With Sp_SumarizaTablaPagos Do
                   Begin
                      StoredProcName:='Sumariza_TablaPagos';
                      Prepare;
                      Params[0].AsInteger:=V_IdPagos;
                      Params[1].AsInteger:=V_ClaveGrupo;
                      Transaction.StartTransaction;
                      ExecProc;
                      Transaction.CommitRetaining;
                   End;

No se por que no me actuliza nada desde Delphi, en Cambio dentro de Firebird si ejecuto el Procedimiento con los parametros dados se ejecuta demaciado bien.

Espero que alguien pueda ayudarme gracias.

RolphyReyes 11-09-2007 15:17:11

Saludos.

Verifica el nivel de aislamiento que tienes en la transacción, tambien si tienes conectado el componente SP al componente de Transaction.

Puedes probar a poner AutoCommit en el componente de SP.

Hasta luego.

IcebergDelphi 11-09-2007 15:28:53

Hola Miago gracias por tu respuesta, ayer mismo al terminar de escribir mi pregunta resolvi el problema, era solamente cambiar mi storeprocedure a otro form al salir de la actulizacion de los pagos, lo unico que faltaba era esperar que se refrescara la tabla maestra.

Saludos y gracias
PD.- Como sismpre me acabo de responder a mi mismo mis preguntas cada vez que termino de escribir aca en Club Delphi jejeje, saludos y gracias.


La franja horaria es GMT +2. Ahora son las 07:50:08.

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