Triger (Programdan parametre almak)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nosedive
Üye
Mesajlar: 238
Kayıt: 16 May 2004 07:48

Triger (Programdan parametre almak)

Mesaj gönderen nosedive »

Kod: Tümünü seç

CREATE TRIGGER kullanici ON [dbo].[main] 
FOR INSERT
AS
update main set editor= .......
where main.Id 
programda TBL_Kullanici tablomda kullanicilarim var. Programı bu kullanıcılardan biri ile açıyorum. Programda deki değişkenlerde kullanıcı bilgilerini tutuyorum.. Burda bir kayıt açıldığında o kaydın Editor alanına o kullanıcının adını gireceğim. Triger ile bunu yapmam için programdan kullanıcını adı değerini almam lazım diye düşündüm.. ?

Bunu ne şekilde yapabiliriz. ?

Teşekkürler..
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Mrb;Trigger'ın bulunduğu tabloda kullanıcı alanı olmalı ve trigger'da da bu kullanıcı adı alanını kullanmalısın. Veri tabanı SQL Server ise buna göre bir örnek verilirse

Kod: Tümünü seç

CREATE TRIGGER kullanici ON [dbo].[main]
FOR INSERT
AS
declare @kul nvarchar(20)
select @kul=Kullanici from inserted
-->@kul değişkeninde bulunan kullanıcı adı isteğe göre kullanılabilir.
update main set editor= .......
where main.Id
şeklinde olabilir. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
nosedive
Üye
Mesajlar: 238
Kayıt: 16 May 2004 07:48

Mesaj gönderen nosedive »

TBL_USER_Tanim tablomda kullanici_adi değişkenini tutuyorum.

Main tablomda ise Editor isminde bi alanım var. program hangi kullanıcı ile açılmışsa o kullanıcı adını Editor alanına gireceğim.

Kod: Tümünü seç

CREATE TRIGGER kullanici ON [dbo].[main] 
FOR INSERT 
AS 
declare @kul nvarchar(20) 
select @kul=Kullanici from inserted 
-->@kul değişkeninde bulunan kullanıcı adı isteğe göre kullanılabilir. 
update main set editor= ....... 
where main.Id 
burada @kul alanını neden tanımladınız ? direk editor değişkenine

Kod: Tümünü seç

TBL_USER_Tanim
tablosundaki Kullanici_adi alanını alamıyormuyuz ?

Kod: Tümünü seç

update main set editor=@kul
şeklindemi olacak diyorsunuz ?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Bir dk. Kafam karıştı. Soruyu tam anlayamadım. Anladığım kadarı ile kaydın eklendiği tabloda Editor isimli bir alan var ve TBL_Kullanici isminde başka bir tablo var galiba. O halde trigger'a hiç bulaşma. Kayıt ekleme yaptığın tablonun onBeforePost olayında

Kod: Tümünü seç

if tbl.State=dsInsert then tblEditor.AsString:=KullaniciAdi
kodunu kullan. Hem burada çalışan trigger TBL_Kullanici tablosunun değil kaydın eklendiği tablonun trigger'ıdır. Bu durumda yukarıda sunduğum çözüm sadece kayıt ekleme durumunda kullanıcı adına otomatik olarak gerekli kaydı yazacaktır. Eğer şart kaldırılırsa ekleme dışında düzeltmelerde de gerekli kullanıcı adı yazılacaktır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
nosedive
Üye
Mesajlar: 238
Kayıt: 16 May 2004 07:48

ok

Mesaj gönderen nosedive »

anladım...siz tek tablo üzerinde düşündünüz sanırım olayı..ondan kafam karıştı..

hallettim bu arada teşekkürler
Cevapla