Ver Mensaje Individual
  #1  
Antiguo 27-11-2004
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
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.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.

Última edición por kinobi fecha: 29-11-2004 a las 16:52:47. Razón: Corrección etiqueta Delphi (MarcosZorrilla) / corrección (2) etiqueta SQL (kinobi)
Responder Con Cita