Triger

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
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Triger

Mesaj gönderen serbek_tr »

Hayırlı çalışmalar;
Özür dilerim trigger konusuna pek hakim değilim şimdilik. Birşey sormak isterim triger konularına baktım ama ya anlayamadım yada istediğim yoktu diyelimki bir kayıtı silmek istedik ve bu kayıtın detayları mevcut bir giriş fişi olsun bu fiş ile ilgili bir takım ana bilgiler mevcut ve bu fişin detaylarında da stok adı fiyati giriş miktarı vs. gibisinden bilgiler olsun ben bu fişi silmek için nasıl bir mantık kullanacağım daha doğrusu bunun trigeri nasıl olacak. Arkadaşlar cidden bu konu üzerinde şimdiye kadar fazla uğraşım olmadı procedure leri baya bir kurcalayıp bir birikim yaptık ama triger henüz öyle değil ama oalcak hani bunları neden yazdığımı soracak olursanız şimdi bana bir çoğunuz arama iconu gönderecek bunu biliyorum ama aradım anlayamadım daha doğrusu örneklerin çoğu sanki dos programlama mantığında olduğu gibi editlere değerleri gireceğiz sonra bu verileri parametrelerle göndereceğeiz procedure yada triger ı tetikleyeceğiz bunlar tek satırlık kayıt örnekleri gibi geldi yada ben öyle anladım hatta şunuda yapacağım ama nasıl silmenin yanında birde o fişin girişi var ana fiş bilgileri girilirken aynı ekranda bu fişin içine o anda sürü ile stokta girilecek bu nasıl olacak mantıklı bir yol gösterirmisiniz. nasıl bir mantık izlemeliyim eğer bu mantık triger ise çok rica ediyorum kısa bir kod lütfen . Teşekkür ederim
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Örnek olarak Fiş Başlık'a bir DELETE Triggerı yazdığınızı düşünün, Başlık Kaydını sildiğinizde, Trigger Tetiklenecektir. Bu tetiklenecek Trigger'da da Detay kayıtları sildiren bir cümle yazarsanız, başlık kaydı silindiğinde detay kayıtları da otomatik olarak silinecektir.

Aşağıdaki örnekte FISBASLIK ve FISDETAY isimli iki adet tablodaki Trigger örneği var. Her ikisinde de geçerli olan ve Relation'ı sağlayan FISNO alanı ile birbirine bağlıdır.

Kod: Tümünü seç


SET TERM ^^ ;
CREATE TRIGGER FISBASLIK_ FOR FISBASLIK ACTIVE BEFORE DELETE POSITION 0 AS
begin
  DELETE FROM FISDETAY WHERE FISNO = old.FISNO ;
end
^^
SET TERM ; ^^
Not : Aslında bu tarz işlemleri FOREIGN KEY Constraint kullanarak yapmak daha doğru olur ve Database Consistency'i korur. Ancak size örnek olması açısından yazdım.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Mesaj gönderen serbek_tr »

Teşekkür ederim
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Cevapla