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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2004
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 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
  #2  
Antiguo 29-11-2004
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
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.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #3  
Antiguo 30-11-2004
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Post

gracias compañero, siempre a tus ordenes.

Santiago
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 20:58:23.


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