Ver Mensaje Individual
  #2  
Antiguo 24-02-2009
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: may 2003
Ubicación: Bogotá - Colombia
Posts: 68
Reputación: 22
Luis F. Orjuela Va por buen camino
Bueno,, una aclaración, cuando se programa un trigger sobre una tabla, éste sólo se ejecuta y tiene en cuenta el registro activo en ese momento.

Por lo tanto para lo que tú quieres, "sumar todas las cantidades de la tabla detalle para ese artículo y actualizar la tabla Inventario",; lo que debes hacer es programar un "STORE PROCEDURE" y que éste se ejecute justo después de que hayas grabado el resgistro en tu tabla DETALLE..

Más o menos sería así el procedimiento que debes programar dentro de tu base de datos FIREBIRD:

Código Delphi [-]
CREATE PROCEDURE NEW_PROCEDURE(
  COD SMALLINT)
AS
DECLARE VARIABLE TOTAL SMALLINT;
BEGIN
  /* Procedure body */
  select sum(cantidad_detalle) form tabla_detalle
  where cod_recepcion = :COD into :TOTAL;

  update tabla_inventario
   set cantidad_inventario = :TOTAL
   where cod_inventario = :COD;
  SUSPEND;
END
;

Donde COD es la llave principal de tu tabla inventario,recepcion y detalle recepcion.

Cabe anotar que este parámetro se lo debes pasar a tu STORE PROCEDURE antes de ejecutarlo.


Un caluroso saludos desde BOGOTA - COLOMBIA
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita