Što odmah ne kažeš!? Sam triger počinje od naredbe CREATE TRIGGER pa do znaka ^. Naime, u ISQL i DSQL se početak i kraj trigera moraju posebno da označe, pošto se znak ; već koristi za kraj naredbe, odnosno iskaza. Sa SET TERM se određuje koji će se znak koristiti u tu svrhu. Naredba SET SQL DIALECT 3 određuje kao što ime kaže dijalekt SQL-a (odnosno odgovarajući SQL standard), moguće vrednosti su 2 i 3. O tome ne treba mnogo da brineš.
Većina alata (nemam iskustva sa tim koji ti koristiš) ima opciju automatskog kreiranja trigera – označiš par čekboksova da bi odredio da li se triger izvršava pre ili posle promene (BEFORE i AFTER, respektivno), da li je aktivan (ACTIVE), da li se izvršava pri ubacivanju, ažuriranju ili brisanju n-torki (INSERT, UPDATE i DELETE respektivno), zatim uneseš ime trigera i odrediš pripadajuću tabelu (u našem slučaju tabela STAVKE). Na osnovu ovoga alat automatski generiše triger, a tebi ostaje da implementiraš ono što ti treba (u našem slučaju upit između begin i end). Ja koristim uglavnom IBExpert.
Drugi način je da u editoru upita (svaki alat ga ima) direktno uneseš SQL kod tj. da prekopiraš ono što sam ti poslao i da zatim kompajliraš upit.
Citat:
I naravno u tabeli ARTIKLI treba da se promjeni stanje samo onog artikla cija je sifra jednaka sifri artikla koji se unosi u tabelu STAVKE.
Naravno :) To sam zaboravio. Dakle u upitu samo dodaj:
Code:
WHERE SARTIKLI = STAVKE.SARTIKLA
Evo ti u prilogu kompletan kod za obe tabele, ako te bune ovi moji nazivi.
Još nešto. Trebalo bi da pogledaš Interbase dokumentaciju. Npr. dokument Language Referece objašnjava detaljno trigere i procedure. Takođe je za početak dobar i Data Definition Guide.
Samo napred. Firebird je odlična baza za učenje i vežbanje.