TRIGGER Tetikleme olayı

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
zengin
Üye
Mesajlar: 233
Kayıt: 06 Ağu 2003 10:13

TRIGGER Tetikleme olayı

Mesaj gönderen zengin »

s.a

Degerli arkadaşlar Vtabanında 2 adet TRIGGER Tetikleme olayı işlemini
Bir Yerden yapmak istiyorum bu mümkünmü kolay gelsin

Kod: Tümünü seç

CREATE TRIGGER KART_BI FOR KART //kart kısmı
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.SIRA_NO IS NULL) THEN
    NEW.SIRA_NO = GEN_ID(GEN_KART_ID,1);
    kart.kalan = kart.toplam - kart.odeme ;
END

CREATE TRIGGER HAREKET_BI FOR HAREKET       //hareket kısmı
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
  IF (NEW.SIRA_NO IS NULL) THEN
    NEW.SIRA_NO = GEN_ID(GEN_HAREKET_ID,1);
    hareket.toplam =hareket.tutar * hareket.adet;
END
Zengin
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Re: TRIGGER Tetikleme olayı

Mesaj gönderen Terminator »

zengin yazdı:s.a

Degerli arkadaşlar Vtabanında 2 adet TRIGGER Tetikleme olayı işlemini
Bir Yerden yapmak istiyorum bu mümkünmü kolay gelsin

Kod: Tümünü seç

CREATE TRIGGER KART_BI FOR KART //kart kısmı
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.SIRA_NO IS NULL) THEN
    NEW.SIRA_NO = GEN_ID(GEN_KART_ID,1);
    kart.kalan = kart.toplam - kart.odeme ;
END

CREATE TRIGGER HAREKET_BI FOR HAREKET       //hareket kısmı
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
  IF (NEW.SIRA_NO IS NULL) THEN
    NEW.SIRA_NO = GEN_ID(GEN_HAREKET_ID,1);
    hareket.toplam =hareket.tutar * hareket.adet;
END
Bu alakasız iki objeyi birleştirmek istemendeki amaç?
if satırını teke indirip db boyunu yarıya indirmek mi yoksa? ;)
Firebird Foundation Member #208
http://www.firebirdsql.org
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Trigger'i kafana göre tetikleyemezsin. Bunun yerine trigger kodunu bir SP olacak şekilde yaz. Trigger içinde SP'yi EXECUTE et. Tetiklemen içap ettiğinde SP'yi çalıştırırsın.
Cevapla