Witam,

chce napisac triggera, ktory przy UPDATE|INSERT|DELETE zmodyfikuje wszytskie nowsze rekordy (od updateowanego) az dojdzie do zmiennej np 'type' ktora bedzie rowna 1, czyli trzeba pobierac rekordy i sprawdzac zmienna 'type', jesli type = 0 to modyfikujemy...

czyli musze zrobic cos takiego:

FOR SELECT type FROM table t1
WHILE t1.stop = 0 DO
BEGIN
UPDATE table ...
END

narazie mam 'syntax error' i kombinuje jak by to mialo poprawnie wygladac... korzystam z Firebirda i wiem ze rozni sie on troche pod wzgledem przyjmowanej skladni od innych baz.

moj kod wyglada tak:
  1. SET TERM ^ ;
  2.  
  3. CREATE TRIGGER test_trigger FOR test
  4. AFTER INSERT OR UPDATE OR DELETE
  5. AS
  6. DECLARE VARIABLE var1 INTEGER;
  7. BEGIN
  8.  
  9. IF (inserting AND new.type = 1)
  10. then
  11. FOR
  12. SELECT type FROM test t1
  13. WHERE t1.var3 > new.var3
  14. INTO :var1
  15. DO
  16. WHILE :var1 = 0 DO
  17. BEGIN
  18. UPDATE test t2
  19. SET t2.var3= new.var3
  20. END
  21.  
  22. IF (updating AND new.type = 1)
  23. then
  24. /* the same... */
  25.  
  26. END^
  27.  
  28. SET TERM ; ^



ale mysle ze obeszlo by sie bez deklarowania zmiennych itd.

moze mi ktos pomoc? z gory thx! :]