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.. ?
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
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. - .
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
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
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. - .