kayıt silmeyi trigger ile engelleme

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
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

kayıt silmeyi trigger ile engelleme

Mesaj gönderen serkan »

selam arkadaşlar..bir firmada kullanıcı kasa hareketlerinde devir fişlerinin kendi kendine silindiğini söylüyor..aradım taradım öyle bir bug göremedim programda ayrıca diğer kullanıcılarda (başka firmalarda) böyle birşey yapmıyor..bende bunun için kasa hareketlerine bir trigger koayarak eğer fiş tipi devir fişiyse kayıt silinmesin şeklinde bir trigger yazmak istiyorum ama beceremedim.kullanıcıya mesaj vermesine gerek yok.eğer gerçekten silmek istiyorsa ben silcem bir süre..böyle bir trigger nasıl yazarım..
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: kayıt silmeyi trigger ile engelleme

Mesaj gönderen Battosai »

nasıl yazarsın bilmemde veritabanını belirtsen iyi olur...
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Re: kayıt silmeyi trigger ile engelleme

Mesaj gönderen serkan »

dikkat edersen soru firebird kısmında......
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Re: kayıt silmeyi trigger ile engelleme

Mesaj gönderen Berdem »

exception ile çözümleyebilirsin.
before tigger...
if (devir fişi =true) and (ben silecem=false) then exp kullanıcıyı uyar...gibi
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: kayıt silmeyi trigger ile engelleme

Mesaj gönderen Battosai »

8) Yanlışlık olmuş ben bölüme pek bakmıyom artık yeni iletiler den daldığım için....
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Re: kayıt silmeyi trigger ile engelleme

Mesaj gönderen serkan »

bu exceptionı daha önce hiç kullanmadın pek forumdada denk gelmedim konuyla ilgili bilgisi olan tavsiyesi olan varmı acaba?
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Re: kayıt silmeyi trigger ile engelleme

Mesaj gönderen Ali Erdoğan »

Exception oluşturmak da diğer tablo bileşenlerini oluşturmaktan farklı değil. Bir exception oluştur ve adı expSilinemez olsun
Trigger içersinde kayıdın silinip silinemeyeceğine ilişkin konrolleri yaptıktan sonra eğer silinemeyecekse

exception expSilinemez;

ifadesi ile kayıdın silinmemesini ve kullanıcıya bir hata döndürülmesini sağlayabilirsin.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: kayıt silmeyi trigger ile engelleme

Mesaj gönderen rsimsek »

@Ali Erdoğan ın dediği gibi... bu da before delete trigger i :wink:

Kod: Tümünü seç

CREATE OR ALTER TRIGGER TABLO_ADI_BD FOR TABLO_ADI
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
   IF (OLD.ALAN_ADI = 15) THEN -- bu değerdekileri kayıtları silme, ex_silme exception undaki hata mesajını ver.
     EXCEPTION ex_silme;
END
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla