Fb - Trigger

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
dost
Üye
Mesajlar: 104
Kayıt: 08 Oca 2004 11:33

Fb - Trigger

Mesaj gönderen dost »

Merhaba,

anatablo
ana_id //pk

izin_bilgi
izin_bilgi_id //pk
detay_izin_bilgi_id //fk
izin_toplami
izin_kalani

izin_talebi
izin_talebi_id --pk
detay_izin_talebi_id //fk
izin_turu -5 secenek
izin_talebleri

yukarıda belirttiğim şekilde 3 tablom var ve izin talebi tablosunda izin_turu
sadece SENELİK İZİN ise izin talebleri(x) gün kadar izin_bilgi tablosundaki izin_kalanı
alanından düşecek insert trigger'ini çalıştırmayı başardım. Ancak delete ve
update trigger'ini çalıştıramadım. delete ve update trigger'inde izin_turu SENELİK İZİN ise izin_bilgi tablosundan
(x) kadar izin_kalanı alanını arttıracak veya eksiltecek delete ve update trigger'ine

Yardımcı olabilirmisiniz?

vt firebird 1.5

Kod: Tümünü seç

CREATE TRIGGER TI_IZIN_GIRIS FOR IZIN_TALEBI
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE NUMROWS INTEGER;
begin
  select count(*)
    from IZIN_TALEBI
    where NEW.IZIN_TALEBI_ID=IZIN_TALEBI.IZIN_TALEBI_ID and IZIN_TURU='SENELİK İZİN'
    into NUMROWS;

  if (NUMROWS>0) then
  begin
    update IZIN_BILGI
    set IZIN_KALANI = IZIN_KALANI-IZIN_TALEBI.IZIN_TALEBLERI
    where IZIN_BILGI.DETAY_IZIN_BILGI_ID=IZIN_TALEBI.DETAY_IZIN_TALEBI_ID;
  end
end
teşekkürler
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

S.A.
Ustadım ben bu ve buna benzer olaylar SP ile yapıyom, Trigger'ı sadece onu tetiklemek için kullanıyom. Bence senin bu kodları Trigger'a yazman yanlış. Yap babalar gibi SP her an heryerden çağırabilirsin :lol: Senin mantıkta konuşuyorum; "NEW." ile başlayan Fieldleri Deletede "OLD." a çevirceksiniz, Update ise Önce "OLD." olayları sonra "NEW." olayları yapılarak olacaktır. İşte SP de olsaydı misal Update triggerinda önce silme(azaltma da denebilir) SP sini OLD. ile çağırcaktınız sonra Artırma SP sini NEW. ile çağıracaktınız.
Arama yaparsanız buna benzer örnekleri bulabilirsizin...

Saygıalr, sevgiler...

Taner DOĞAN
dost
Üye
Mesajlar: 104
Kayıt: 08 Oca 2004 11:33

Mesaj gönderen dost »

İlginize teşekkür ederim.

normalde insert,delete ve update triggeri çalışıyor, ancak izin_turu
şartını koyunca delete ve update triggeri arttırma veya eksiltme yapmıyor.
Cevapla