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)
-   -   un trigger de actualizacion (https://www.clubdelphi.com/foros/showthread.php?t=16433)

santiago14 27-11-2004 05:30:20

un trigger de actualizacion
 
No quisiera molestar tanto pero estoy obligado....
Tengo un trigger:

Código SQL [-]
CREATE TRIGGER MODIFICOPCIO_LISTA_REP FOR REPUESTOS
  ACTIVE AFTER UPDATE POSITION 2
  AS
  declare variable dto_Caja double precision;
  begin
      /* en este caso la modificación es en el precio de lista */
  
  /* pcio_Costo = pcio_Lista - Dtos_Pieza + IVAc - Dto_Caja */
  /* pcio_Vta = pcio_Costo + IVAv + Gcia_Rep */
  
   /*si se modificó el precio de lista del repuesto*/
    if (new.pcio_lista <> old.pcio_lista) then
    begin
      /*dto_Caja es la tasa de descuento */
      execute procedure recuperodtocaja(old.cod_prov)
          returning_values dto_Caja;
      /*actualizamos el pcio de costo*/
      execute procedure actualizopcio_costo_rep(new.pcio_lista,old.dto1_rep,
          old.dto2_rep,old.cod_rep,:dto_Caja);
      /*actualizamos el pcio de venta*/
      execute procedure actualizopcio_vta_rep(old.gcia_rep,new.pcio_costo,
          old.cod_Rep);
    end
  end

El tema es el siguiente, en el SP actualizopcio_costo_rep hago justamente eso, y no hay problema, la cuestión es que, el precio de costo recién actualizado sirve para actualizar también el precio de vta, tal actualización se hace en actualizonpcio_vta_rep, SP que necesita entre sus parámetros de entrada el precio de costo recién actualizado, para ello le paso como parámetro new.pcio_costo suponiendo yo que el valor que pasa es el pcio_costo recientemente actualizado en el SP anterior, pero no es así, el pcio_costo que pasa es el viejo, o sea, el que estaba en la tabla de repuestos antes de que se disparara este trigger.
Necesito saber como pasar el pcio_costo recién actualizado al SP de actualización de pcio_vta, por lo visto new.pcio_costo todavía no conoce al nuevo pcio_costo que puse en el SP actualizonpcio_costo_rep.
Bueno, no se si me hice un lio, espero haber sido claro.
Gracias de antemano.

defcon1_es 29-11-2004 12:36:59

Hola,
una solución sería que el procedimiento actualizopcio_costo_rep
devolviese el nuevo precio de costo ya calculado, ¿no?.

Puedes definirte un procedimiento nuevo que haga lo mismo que el que tienes,
pero que te devuelva el nuevo PMC.

Salu2.

santiago14 30-11-2004 03:57:19

gracias compañero, siempre a tus ordenes.

Santiago


La franja horaria es GMT +2. Ahora son las 22:30: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