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)
-   -   Verificar registro con trigger (https://www.clubdelphi.com/foros/showthread.php?t=38543)

fedelphi 18-12-2006 17:17:18

Verificar registro con trigger
 
Hola, mi duda es si se puede realizar una verificacion si existe un registro determinado con un trigger. Paso detallar, tengo un trigger asi:
Código SQL [-]
TRIGGER SUMA_TICKETS ACTIVE
AFTER INSERT POSITION 20
AS 
BEGIN 

  UPDATE TOTALESXSUCURSAL
  SET TOTAL_TICKET=TOTAL_TICKET+new.MONTO
  WHERE id_ticket=new.ID_TICKET AND id_sucursal=new.ID_SUCURSAL; 
END^

que se activa al insertar un registro en una tabla, entonces actualiza el acumulado del monto en otra llamada totalesxsucursal, como se ve, y mi idea es que antes de hacer el update verifique si existe el registro que tiene id_ticket, id_sucursal (indice de la tabla) y en caso que no exista lo inserte, y realice el update sobre el mismo recien insertado en el campo monto, en caso de que ya exista, acumula normalmente. No se si realmente esta es la metodilogia que se utiliza, ya que es mi primera aplicacion con firebird y estoy aprendiendo, asi que escucho sugerencias. Gracias
Fede

AdrianD 19-12-2006 16:22:24

Fede, en la logica si, en un triger puedes incluso llamar a procedimientos almacenados

rastafarey 19-12-2006 22:10:26

Rsp
 
Lo que estas haciendo estas bien. Lo que no creo es que se al mejor manera de hacerlo.

Segunveo lo qu quieres es tner el total de un monto dependiendo de un campo clave o ir aculando de igual manera.

Te recomiendo me des la estructrura de la tabla o tabals en cuestion para ayudarte a solucinar lo d emanera mas sana y sin tanto rollos por lo que veo se puede solucionar con una vista o un store procedure. Te digo eso por que para que quieres in guardando si ya lo puedes optenr de la tabal que posee los datos de manera que esto solo es cuando se desee usar.

Bueno esto es lo que dedusco que quieres hacer si me tye explcias mejor y proporcioans la estructura de las tablas o tabala en cuention seria mecho mas facil de ayudarte.

Lepe 20-12-2006 12:57:43

me sorprendió un poco al ver:
Código SQL [-]
AFTER INSERT POSITION 20
Eso vendría a significar que tiene 19 triggers antes, para esa tabla en su evento AFTERPOST (yo tampoco lo veo muy conveniente, aunque eso no quiere decir que no sea necesario).

Saludos


La franja horaria es GMT +2. Ahora son las 21:03:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi