Zamanı geçmiş alanlara kayıt yapılmasın

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
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Zamanı geçmiş alanlara kayıt yapılmasın

Mesaj gönderen Berdem »

Kod: Tümünü seç

CREATE TRIGGER GELEN_BUD0 FOR GELEN
ACTIVE BEFORE UPDATE OR DELETE POSITION 0
AS
DECLARE variable kontrol integer;
begin
  SELECT  daysbetween(old.tarih,current_date)
FROM gelen where gelen.sirano=new.sirano into kontrol;
if ((kontrol>7) and (new.gidenno is null) and (new.sube_zimmet_alan is null) and
(new.zimmet_tarihi is null) and (new.zimmet_no is null)) then exception yetkili;
end

Kod: Tümünü seç

CREATE TRIGGER GELEN_BUD0 FOR GELEN
ACTIVE BEFORE UPDATE OR DELETE POSITION 0
AS
DECLARE variable kontrol integer;
DECLARE variable a integer;
begin
a=0;
  SELECT  daysbetween(old.tarih,current_date)
FROM gelen  where gelen.sirano=new.sirano into kontrol;
if (new.geldigiyer<>'')  then a=1;
if (new.subesi <>'')  then a=1;
if (new.ozu <>'')  then a=1;
if ((kontrol>7) and  (a=1)) then exception yetkili;
end
Merhaba Arkadaşlar giden no, zimmet alan ,zimmet tarihi, zimmet no haricinde alanlara 7 günden sonra kayıt yapılmamasını istiyorum.İki yazdığım kodla olmadı... Olayın sanırım mantığını kurgulayamadım.Yardımınızı rica ediyorum.
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Kod: Tümünü seç

CREATE TRIGGER GELEN_BUD0 FOR GELEN
ACTIVE BEFORE UPDATE OR DELETE POSITION 0
AS
DECLARE variable kontrol integer;
DECLARE variable a integer;
begin
  SELECT  daysbetween(old.tarih,current_date)
FROM gelen  where gelen.sirano=new.sirano into kontrol;
if (old.geldigiyer<>new.geldigiyer)  then a=1;
if (old.subesi <>new.subesi)  then a=1;
if (old.ozu <>new.ozu)  then a=1;
if ((kontrol>7) and  (a=1)) then exception yetkili;
end
Çok teşekkürler sanırım kafamız durunca basit şeyler zor oluyor. :lol: :lol: :lol:
Cevapla