Trigger inactive

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ı
Barch
Üye
Mesajlar: 12
Kayıt: 28 Ara 2004 06:34
Konum: İzmir

Trigger inactive

Mesaj gönderen Barch »

HERKEZE KOLAYGELSİN ARKADAŞLAR.

Ben bir triggerı bir stored procedure çalışma esnasında pasif hale getirmek istiyorum. SP'nin işi bitince tekrar active olacak. Bunu nasıl yapabilirim?
Bilen arkadaşların yardımlarını bekliyorum. İyi Çalışmalar.
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

execute statement ile inactive komutu verip edebilirsin, AMA!
aması var...
çok kullanıcılı bir sistemde münferit bir işlem için genel amaçlı bir
triggeri inactive etmek tehlikelidir 1,
triggerin inactive edilmesini önleyen bir bağımlılığı varsa edemezsin 2.

En sağlık yöntem, her zaman önerdiğim işleme özel by-pass tekniği.
Yani, Tablona bir bypass flagi olarak kullanılacak bir saha ekle.
alter table .... add bypass smallint
triggeri atlamak istediğin zamanlarda bu sahaya 1 ataması yap.

yani proceurde ya da herhangi bir yerdesin ve trigger çalışmadan işlemin yapılmasını istiyorsun, o zaman bypass=1 ile göndereceksin kaydı.

Trigger içerisinde de:

if(bypass is null or bypass=0) then
begin
-- normal işlemler..
end
else bypass = NULL; -- bu işlem için bypass gerçekleşti, durumu resetle.
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

pardon, yanlış anlama olmasın...

trigger örneğim sadece fikirsel, bir pseudo koddur.
gerçekte NEW.bypass şeklinde kullanmalısın.
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
Barch
Üye
Mesajlar: 12
Kayıt: 28 Ara 2004 06:34
Konum: İzmir

Mesaj gönderen Barch »

:) Teşekkürler arkadaşlar. Kolaygelsin.
Cevapla