Sayfayı Yazdır | Pencereyi Kapat

Trigger

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=1566
Tarih: 22 Ağustos 2025 Saat 22:36
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: Trigger
Mesajı Yazan: social
Konu: Trigger
Mesaj Tarihi: 27 Nisan 2009 Saat 13:46
Merhaba Arkadaslar @6 Kullaniyoruz.Stok kartlarini açarlarken grup kodu sahasini bos geçiyorlar bu sahanin bos geçilmesini engellemek istiyorum eger grup kodu girilmemisse kayit yapmasin ve uyari goruntulesin istiyorum.Bununla alakali nasil bir trigger yazabilirim yardimci olabilirmisiniz.
 
Birde Fusion St.Olan Subemiz var.Bankalari caride tutuyoruz ve bu cari kartlari sadece yetkili kisiler gorebilsin istiyoruz.Veritabani Sql oldugundan Yardimci Programlardaki Kolon Bazi Guvenlik seçenegini Kullanamiyoruz.Bununla alakali fikir verebilecek varmi acaba

Tesekkurler



Cevaplar:
Mesajı Yazan: Conari
Mesaj Tarihi: 27 Nisan 2009 Saat 14:15
Triggeri netsis kendi yaziyor Kullanici islemleri Kolon bazi geçerlilik  kismi ile
 
Banka modülüne sadece hakki olan kullanicilara yetki verin. Kullanici modülü


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: social
Mesaj Tarihi: 27 Nisan 2009 Saat 17:36

Merhaba sanirim yanlis anladiniz Entegre 6 kullaniyorum ve bu versyonda kolon bazi geçerlilik yoktur.Bankalarida Caride tuttugumu belirtmistim.

Bir kaç trigger yazdim ama grup için nasil bir islem yapacagimi bulamadim sonuçta triggerlar insert,update ve delete yapiyor.Ben mantigini kuramadim is null ise kayit yapma gibisinden bir t-sql lazim.
tesekkurler


Mesajı Yazan: Conari
Mesaj Tarihi: 27 Nisan 2009 Saat 18:01

@6 demissiniz. Entegre diye bir sey geçmiyor ki.

"triggerlar insert,update ve delete yapiyor." bunlari yapmiyorlar.
bu islemleri tetikliyor ve sonra yapmasi gerekeni yapiyor.
 
Yarin yazarim. çikmam lazim.


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: social
Mesaj Tarihi: 28 Nisan 2009 Saat 09:02
Tesekkurler Conari.Cümleyi Bekliyorum


Mesajı Yazan: Conari
Mesaj Tarihi: 28 Nisan 2009 Saat 12:53
Netsis'In Trigger
------------------------
CREATE TRIGGER  SPgrupkod_TBLCASABIT
 ON  TBLCASABIT
 AFTER INSERT, UPDATE
 AS
 IF (OBJECT_ID('tempdb..#OMITNDV') IS NULL)
 BEGIN
   DECLARE @XHATAACK VARCHAR(255)
   DECLARE @XVALIDATIONSQL VARCHAR(2000)
   DECLARE @XKOLONADI VARCHAR(50)
   DECLARE @NETUSERID INTEGER
   DECLARE @NETUSERGRPID INTEGER
   DECLARE @PRETURNCOUNT INT
   DECLARE @PFULLCOUNT INT
   DECLARE @XTEMPSQL NVARCHAR(2000)
   DECLARE @PSIRALA CHAR(1)
   DECLARE @ISINSERT SMALLINT
   DECLARE @PSILME CHAR(1)

 SELECT @PFULLCOUNT=COUNT(*) FROM INSERTED
 IF @PFULLCOUNT = 0 BEGIN
   SELECT @PFULLCOUNT=COUNT(*) FROM DELETED
   SELECT  *  INTO #DNST_TBLCASABIT FROM DELETED
   SET @ISINSERT = 0
 END ELSE BEGIN
   SELECT  *  INTO #INST_TBLCASABIT FROM INSERTED
   SET @ISINSERT = 1
 END
   SELECT  @NETUSERID = V$NETUSERID,@NETUSERGRPID = V$NETUSERGRPID FROM NETCONTEXT
    SET @PRETURNCOUNT = 0
    DECLARE CURKISIT CURSOR FOR SELECT VALIDATIONKOLON,VALIDATIONSQL,ISNULL(HATAACK,'Grup Kodu Bos'),
                                CASE WHEN KULLANICI_NO=-1 THEN 'C'
                                  WHEN KULLANICI_NO<-1 THEN 'B'
                                  WHEN KULLANICI_NO>0 THEN  'A'
                                END AS SIRALA, C_YEDEK1 FROM KOLONGUVENLIK
                           WHERE
                           (( mailto:KULLANICI_NO=@NETUSERID - KULLANICI_NO=@NETUSERID ) OR
                            ( mailto:KULLANICI_NO=@NETUSERGRPID - KULLANICI_NO=@NETUSERGRPID ) OR
                            (KULLANICI_NO=-1))
                           AND 
                           (NESNEADI='TBLCASABIT') ORDER BY SIRALA
    OPEN CURKISIT
     FETCH NEXT FROM CURKISIT INTO @XKOLONADI,@XVALIDATIONSQL,@XHATAACK,@PSIRALA,@PSILME
   WHILE (@@FETCH_STATUS <> -1)
   BEGIN
      IF ((@PSILME ='E') AND (@ISINSERT = 0)) OR ((@PSILME ='H') AND (@ISINSERT > 0)) BEGIN
      SET @XTEMPSQL = ' SELECT @PReturnCount = count(*) FROM '
       IF @ISINSERT = 1 BEGIN
           SET @XTEMPSQL = @XTEMPSQL + ' #INST_TBLCASABIT TBLCASABIT '
       END ELSE BEGIN
           SET @XTEMPSQL = @XTEMPSQL + ' #DNST_TBLCASABIT TBLCASABIT '
       END
      SET @XTEMPSQL = @XTEMPSQL + ' WHERE (' + @XKOLONADI + ' ' + @XVALIDATIONSQL + ')'
       EXEC SP_EXECUTESQL @XTEMPSQL, mailto:N@PReturnCount - N'@PReturnCount tinyint OUTPUT',
                       @PRETURNCOUNT = @PRETURNCOUNT OUTPUT
      IF (@PRETURNCOUNT <> @PFULLCOUNT)
      BEGIN
        SET @XHATAACK = 'MSSQLVALIDATION'+ @XHATAACK
        RAISERROR (@XHATAACK, 16, 1)
        ROLLBACK
      END
      END
      FETCH NEXT FROM CURKISIT INTO @XKOLONADI,@XVALIDATIONSQL,@XHATAACK,@PSIRALA,@PSILME
    END
    CLOSE CURKISIT
    DEALLOCATE CURKISIT
 END



-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: social
Mesaj Tarihi: 28 Nisan 2009 Saat 13:01
Çok tesekkur ederim ama bunu anlayamadim carisabitden bahsetmissiniz ben bunu stoksabit ilemi degistirecegim


Mesajı Yazan: social
Mesaj Tarihi: 28 Nisan 2009 Saat 13:38
anliyorum ama bu kodu revize edecek kadar sql bilgim mevcut degil.Tesekkurler biraz kodlar hakkinda arastirayimç


Mesajı Yazan: Conari
Mesaj Tarihi: 28 Nisan 2009 Saat 13:51
bardon ben cariler diye hatirliyordum ondan bunu gönderdim.
 
Yanliz burda sadece tablo ismini degistirmek yeterli degil. TBLKOLONGUVENLIK sizde bos olacagindan bu islem yapmaz. Ben buna göre revize edersiniz diye düsünmüstüm.


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: epik
Mesaj Tarihi: 03 Aralık 2009 Saat 14:51
kullanici bazinda aralik içinde veya aralik disinda listeleri ayarlayabilirsiniz.
kullanici islemleri kayit kullanici kayitlari kart seri numarasi kullanilabilir.
cari kodlar ayni uzunlukta oldugunu düsünerek
kod baslangiç ve bitis yaziyoruz arada bosluk birakarak
son olarakda trigger update islemi yapiyoruz
istediginiz durumda admin kullanici olarak cari kodlari düzenleyiniz.
diger kullanicilara bu bölüm kapatilmis düsünüyoruz.


-------------
YazilimDestek
EgitimDanismanlik


Mesajı Yazan: epik
Mesaj Tarihi: 04 Aralık 2009 Saat 20:47
detay bulamadinizmi 

-------------
YazilimDestek
EgitimDanismanlik


Mesajı Yazan: epik
Mesaj Tarihi: 04 Aralık 2009 Saat 20:47
islem sirasina göre hangisini kullanacaksiniz 

-------------
YazilimDestek
EgitimDanismanlik


Mesajı Yazan: rifatgunduz
Mesaj Tarihi: 05 Aralık 2009 Saat 09:59

Selam,

Grup kodu alaninin bos geçilmemesi isteniyorsa asagidaki trigger ile yapilabilir.
 
CREATE TRIGGER [dbo].[TRG_STSABIT_I] ON [dbo].[TBLSTSABIT] FOR INSERT AS
BEGIN
DECLARE @XHATAACK VARCHAR(120)

IF(SELECT COUNT(*)
FROM INSERTED
WHERE (GRUP_KODU IS NULL OR GRUP_KODU=''))>0
BEGIN
SET @XHATAACK = 'MSSQLVALIDATION'+ 'GRUP KODU BOS GECILEMEZ...!'
RAISERROR (@XHATAACK, 16, 1)
ROLLBACK
END 

END


-------------
Rifat Gündüz



www.netsis.com.tr



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net