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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2004
marti marti is offline
Registrado
 
Registrado: sep 2004
Posts: 4
Poder: 0
marti Va por buen camino
triggers sobre vistas

Deseo hacer un trigger sobre una vista, de forma tal que realice un cálculo sobre algún campo de la vista.

La vista luce asi:

Código SQL [-]
CREATE VIEW ITEM_INVENTARIO_INFO (
  ID_ITEM, 
  ID_BODEGA, 
  CANTIDAD, 
  COSTO, 
  TOTAL_COSTO, 
  PRIORIDAD
) AS
SELECT CD.ID_ITEM,CD.ID_BODEGA,CD.CANTIDAD,25.0,0.0,5
FROM REMISION C INNER JOIN REMISION_DET CD ON (C.ID_EMPRESA=CD.ID_EMPRESA AND C.ID_SUCURSAL=CD.ID_SUCURSAL AND C.ID_TIPO_DOC = CD.ID_TIPO_DOC AND C.NUMERO = CD.NUMERO)
UNION
SELECT CD.ID_ITEM,CD.ID_BODEGA,CD.CANTIDAD,25.0,0.0,5
FROM FACTURA C INNER JOIN FACTURA_DET CD ON (C.ID_EMPRESA=CD.ID_EMPRESA AND C.ID_SUCURSAL=CD.ID_SUCURSAL AND C.ID_TIPO_DOC = CD.ID_TIPO_DOC AND C.NUMERO = CD.NUMERO)
;

y el trigger luce asi:

Código SQL [-]
CREATE TRIGGER TRIG_ITEM_INVENTARIO_INFO FOR ITEM_INVENTARIO_INFO 
ACTIVE AFTER UPDATE POSITION 0
as
BEGIN
  NEW.TOTAL_COSTO = NEW.CANTIDAD* NEW.COSTO;
END
 ^

El motor de la base de datos no genera ningún tipo de error al crear el trigger sobre la vista pero no hace lo que deseo que haga.

La vista me devuelve los siguientes registros

Código:
 
ID_ITEM  ID_BODEGA CANTIDAD COSTO TOTAL_COSTO  PRIORIDAD	
0001	   01			 20		  25			  0			5	
0001	   01			 50		  25			  0			5	
0002	   01			 10		  25			  0			5	
0002	   01			 20		  25			  0			5	
0003	   01			  2		   25			  0			5	
0003	   01			100		  25			  0			5
El campo Total deberia tener un valor mayor a cero (cantidad*costo)

Es posible realizar este tipo de actualizaciones con Firebird?

Gracias por su colaboración
Responder Con Cita
 



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 21:04:41.


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