kayıt silmeyi trigger ile engelleme
kayıt silmeyi trigger ile engelleme
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..
Re: kayıt silmeyi trigger ile engelleme
nasıl yazarsın bilmemde veritabanını belirtsen iyi olur...
Re: kayıt silmeyi trigger ile engelleme
dikkat edersen soru firebird kısmında......
Re: kayıt silmeyi trigger ile engelleme
exception ile çözümleyebilirsin.
before tigger...
if (devir fişi =true) and (ben silecem=false) then exp kullanıcıyı uyar...gibi
before tigger...
if (devir fişi =true) and (ben silecem=false) then exp kullanıcıyı uyar...gibi
Re: kayıt silmeyi trigger ile engelleme

Re: kayıt silmeyi trigger ile engelleme
bu exceptionı daha önce hiç kullanmadın pek forumdada denk gelmedim konuyla ilgili bilgisi olan tavsiyesi olan varmı acaba?
-
- Kıdemli Üye
- Mesajlar: 1026
- Kayıt: 11 Şub 2005 02:12
- Konum: İstanbul
Re: kayıt silmeyi trigger ile engelleme
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.
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.
Re: kayıt silmeyi trigger ile engelleme
@Ali Erdoğan ın dediği gibi... bu da before delete trigger i

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!!