Merhaba,
bu makalede sizlere veritabanı üzerinde işlem gerçekleştirirken,bu işlemi hangi uygulamanın gerçekleştirdiğini sql tarafında yakalayıp nasıl kayıt altına alabileceğimizi göstereceğim.bu sayede en başta hata kayıtları olmak üzere birçok işlemi daha da detaylandırabilir ve kolay yönetilebilir hale getirebiliriz.
Sql server üzerinde işlem yapan uygulamayı
SQL Server arabirimi üzerinde bu sorguyu çalıştırdığınızda sonuç olarak size ;
'Microsoft SQL Server Management Studio - Query' metnini döndürecektir.
aynı işlemi uygulamalarımızda da kullanarak istediğimiz sonuca ulaşabiliriz.
Şöyle Ki ;
aşağıdaki create script'i kullanarak yeni bir tablo oluşturalım;
tablomuzu oluşturduk.şimdi de bağlantımız için bir connectionstring yapılandıralım;
şimdi de log tutacağımız tablomuzu oluşturalım;
log tablomuzuda oluşturduktan sonra Hesap tablomuza bir adet INSERT Trigger'ı ekleyelim.Bu sayede Hesap tablomuza her kayıt atıldığında INSERT Trigger'ı çalışacak ve Log tablomuza kaydı yapan uygulamayı ve kayıt tarihini atacaktır.
csharp tarafında Hesap tablosuna yaptığınız her kayıt için bundan böyle log tablosunda verilerin geldiğini göreceksiniz.bu basit bir kısmıydı.sizler verdiğim örneği daha da geliştirerek farklı sorunlara çözüm bulabilirsiniz.
Kolay Gelsin
bu makalede sizlere veritabanı üzerinde işlem gerçekleştirirken,bu işlemi hangi uygulamanın gerçekleştirdiğini sql tarafında yakalayıp nasıl kayıt altına alabileceğimizi göstereceğim.bu sayede en başta hata kayıtları olmak üzere birçok işlemi daha da detaylandırabilir ve kolay yönetilebilir hale getirebiliriz.
Sql server üzerinde işlem yapan uygulamayı
SELECT APP_NAME()sorgusu ile yakalayabilmemiz mümkündür.
SQL Server arabirimi üzerinde bu sorguyu çalıştırdığınızda sonuç olarak size ;
'Microsoft SQL Server Management Studio - Query' metnini döndürecektir.
aynı işlemi uygulamalarımızda da kullanarak istediğimiz sonuca ulaşabiliriz.
Şöyle Ki ;
aşağıdaki create script'i kullanarak yeni bir tablo oluşturalım;
CREATE TABLE [dbo].[Hesap]( [MusteriId] [int] IDENTITY(1,1) NOT NULL, [BankaAdi] [nvarchar](50) NULL, [HesapNo] [nvarchar](50) NULL, [KrediKarti] [bit] NULL, [KrediKartiNo] [nvarchar](50) NULL, CONSTRAINT [PK_Hesap] PRIMARY KEY CLUSTERED ( [MusteriId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
tablomuzu oluşturduk.şimdi de bağlantımız için bir connectionstring yapılandıralım;
Data Source=127.0.0.1;Initial Catalog=test_db;Integrated Security=True;User ID=sa;Password=sapass;Connect Timeout=30;Encrypt=False; Pooling=true;Application Name='ornekProgram'; Packet Size=32000;
şimdi de log tutacağımız tablomuzu oluşturalım;
CREATE TABLE [dbo].[TBLLog]( [Kullanici] [nvarchar](50) NULL, [KayitZamani] [datetime] NULL ) ON [PRIMARY] GO
log tablomuzuda oluşturduktan sonra Hesap tablomuza bir adet INSERT Trigger'ı ekleyelim.Bu sayede Hesap tablomuza her kayıt atıldığında INSERT Trigger'ı çalışacak ve Log tablomuza kaydı yapan uygulamayı ve kayıt tarihini atacaktır.
CREATE TRIGGER [dbo].[TriggerLog] ON [dbo].[Hesap] AFTER INSERT AS BEGIN declare @AppName nvarchar(50)=(SELECT APP_NAME()) declare @Zaman datetime =(SELECT GETDATE()) INSERT INTO TBLLog(Kullanici,KayitZamani) VALUES(@AppName,@Zaman ) END
csharp tarafında Hesap tablosuna yaptığınız her kayıt için bundan böyle log tablosunda verilerin geldiğini göreceksiniz.bu basit bir kısmıydı.sizler verdiğim örneği daha da geliştirerek farklı sorunlara çözüm bulabilirsiniz.
Kolay Gelsin
Yorumlar
Yorum Gönder