Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Trigger'a parametre göndermek
#1
Merhaba;

Delphi tarafından trigger'a parametre göndermek mümkün mü?
Triggerın çalıştığı tabloda olmayan bir alanı triggera parametre olarak göndermek istiyorum, yapılabilir mi?
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk

Eyvallah..
Cevapla
#2
Merhaba Triggerlar insert, update,delete (DML) işlemleri ile devreye girerler. 
Bunun zamanlaması da After veya Before tercihiyle yapılır. Triggerlar parametre almazlar. 
Gerçek tabloda olmayan bır alan, gercek tablo triggerinda denetlenemez. Fakat bunu View triggerları içinde yapabilirsiniz.
Bir tane sanal sutun tanımlayıp , bu sutuna uygulamanızdan deger vererek trigger içinde denetime tabi tutabılırsınız.
Örnek vermek gerekirse şöyle bir tablonuz olsun.

CREATE TABLE dbo.tbltablo (
  alanA int NULL,
 alanB int NULL
)

Siz uygulmanızdan alanC gibi sanal bir değerin durumuna göre işlem yapacaksınız.

bir view tanımlıyoruz

CREATE VIEW dbo.view1
AS
 SELECT t.alanA,
        t.alanB,
        cast(null as int) as alanC --sizin için sanal sutun budur. uygulamnızda readonly gözükebılır. readonly=false yapın
 FROM tbltablo t

CREATE TRIGGER dbo.view1_tri ON dbo.view1
WITH EXECUTE AS CALLER
INSTEAD OF INSERT
AS
BEGIN

 INSERT INTO tbltablo(alanA,alanB)
 SELECT IIF(alanC=5,alanC+100,alanA),
        IIF(alanC+alanA=100,alanC,alanB)
 FROM INSERTED I

END

Buradaki sartlar tamamen rastgeledir. kendi şartınızı oluşturabilirisiniz.
Gerçek tabloda olmayan alanımız yanı alanC nin durumua göre gercek tabloda işlem yapılıyor. 
yada siz DML işlemi değilde farlı denetimler kontrol edebilirsiniz

Ben firebird oldugunu sonradan gordum.
Yazdigim ornek mssql icindi.
Benzer mantik firebird icin kurmalisiniz
Cevapla
#3
(13-10-2019, Saat: 19:39)serdar Adlı Kullanıcıdan Alıntı: Merhaba Triggerlar insert, update,delete (DML) işlemleri ile devreye girerler. 
Bunun zamanlaması da After veya Before tercihiyle yapılır. Triggerlar parametre almazlar. 
Gerçek tabloda olmayan bır alan, gercek tablo triggerinda denetlenemez. Fakat bunu View triggerları içinde yapabilirsiniz.
Bir tane sanal sutun tanımlayıp , bu sutuna uygulamanızdan deger vererek trigger içinde denetime tabi tutabılırsınız.
Örnek vermek gerekirse şöyle bir tablonuz olsun.

CREATE TABLE dbo.tbltablo (
  alanA int NULL,
 alanB int NULL
)

Siz uygulmanızdan alanC gibi sanal bir değerin durumuna göre işlem yapacaksınız.

bir view tanımlıyoruz

CREATE VIEW dbo.view1
AS
 SELECT t.alanA,
        t.alanB,
        cast(null as int) as alanC --sizin için sanal sutun budur. uygulamnızda readonly gözükebılır. readonly=false yapın
 FROM tbltablo t

CREATE TRIGGER dbo.view1_tri ON dbo.view1
WITH EXECUTE AS CALLER
INSTEAD OF INSERT
AS
BEGIN

 INSERT INTO tbltablo(alanA,alanB)
 SELECT IIF(alanC=5,alanC+100,alanA),
        IIF(alanC+alanA=100,alanC,alanB)
 FROM INSERTED I

END

Buradaki sartlar tamamen rastgeledir. kendi şartınızı oluşturabilirisiniz.
Gerçek tabloda olmayan alanımız yanı alanC nin durumua göre gercek tabloda işlem yapılıyor. 
yada siz DML işlemi değilde farlı denetimler kontrol edebilirsiniz

Ben firebird oldugunu sonradan gordum.
Yazdigim ornek mssql icindi.
Benzer mantik firebird icin kurmalisiniz

@serdar  firebirdde sanal alan oluşturma var mı? Nasıl?
Şimdiye kadar hiç görmediğim gibi duymamıştımda.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk

Eyvallah..
Cevapla
#4
Firebird kullanmadim deyimlerini bilmiyorum
Firebird view olusturup icinde 
cast(null as int) as alanC
Koduna karsilik gelecek kodu yazmalisin
Cevapla
#5
(13-10-2019, Saat: 22:47)serdar Adlı Kullanıcıdan Alıntı: Firebird kullanmadim deyimlerini bilmiyorum
Firebird view olusturup icinde 
cast(null as int) as alanC
Koduna karsilik gelecek kodu yazmalisin

@serdar hocam, şimdilik gerek kalmadı sanal alan tanımlamaya @esistem hocam öyle bir kod vermiş ki olayı kökünden çözmüş.

http://www.delphican.com/showthread.php?...4#pid31864
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk

Eyvallah..
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Firebird Trigger'a parametre gönderme esistem 3 1.209 15-10-2019, Saat: 22:17
Son Yorum: Aktolgali
  Firebird After xx Trigger mcuyan 5 1.331 05-08-2018, Saat: 15:43
Son Yorum: mcuyan
  Select bolumunde parametre kullanmak klavye 15 3.704 16-03-2017, Saat: 15:58
Son Yorum: esistem
  Firebird stok hareketleri ve maliyet hesaplanması, trigger, view ile esistem 3 2.350 09-02-2017, Saat: 16:22
Son Yorum: esistem



Konuyu Okuyanlar: 1 Ziyaretçi