Kurumsal Otomasyon Çözümlerinde Zirve

NET ile SQL SERVER CLR

Bu yazımda .NET teknolojisi ile gelen CLR(Common Language Runtime) yapısını inceleyeceğiz.

CLR Nedir? Açılımı Common Language Runtime olan CLR ile SQL Server içerisine Prosedürden Trigger’a kadar bir çok SQL SERVER nesnesi .NET içerisinden yazılarak eklenebilmektedir.

Bu şekilde:
•    CLR, kompleks kod gerektiren durumlarda, .NET kütüphanesi ile işinizi kolaytıracaktır.
•    Bu yapı ile performans artacaktır.

CLR ile bu yapıları oluşturmaya ise Assembly adı verilmektedir.
CLR ile yazılmış yapıları(Procedure,Function,Trigger vb..) SQL Server’a aktarmak için CREATE ASSEMBLY kod yapısını kullanabileceğiniz gibi Management Studio yardımı ile çok daha basit bir şekilde aktarma yapabilirsiniz.

Şimdi işe koyulalım…
1.SQL Server’ da bir adet veritabanımız olsun. Veritabanımızın adı ELearner ve tablomuzun ismi elearnerekibi olsun.

net-ile-sql-server-clr-1

net-ile-sql-server-clr-1

2. Yeni bir Visual Studio Project açalım. Yazmayı istediğimiz dil (Ben C# tercih ediyorum) altından Database seçeneğini ve gelen seçeneklerden SQL SERVER PROJECT seçeneğini seçelim.

net-ile-sql-server-clr-2

net-ile-sql-server-clr-2

3. Gelen ekrandan yeni bir bağlantı oluşturmak için gelen ekrandan veritabanımızı ve tabllomuzu seçelim OK diyelim ve gelen ekrana da OK diyelim.

net-ile-sql-server-clr-3

net-ile-sql-server-clr-3

4. Gelen Ekrandan ise SQL/CLR derlemesini aktifleştirelim.

net-ile-sql-server-clr-4

net-ile-sql-server-clr-4

5. Solution Explorer’dan Proje üzerinde sağ tıklayıp ADD dedikten sonra istediğimiz yapıyı ekleyebiliriz. Biz Stored Procedure Ekleyelim.

net-ile-sql-server-clr-5

net-ile-sql-server-clr-5

 

6. Artık kodlarımızı yazabiliriz.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcedure1() //Stored Procedure ismi
{
SqlConnection baglanti = new SqlConnection(“context connection = true”);
//ilk başta oluşturduğumuz

                                                                                                                                     //bağlantıyı kullan
baglanti.Open(); //bağlantıyı aç
SqlCommand komut = new SqlCommand(“select * from elearnerekibi”,baglanti); //sorgunu belirle
SqlDataReader oku = komut.ExecuteReader(); //sorgu sonucunu Sqldatareader nesnesine aktar
SqlContext.Pipe.Send(oku); //ve sisteme yolla
oku.Close(); //Sqldatareader nesnesini kapat
baglanti.Close(); //bağlantıyı kapat…
}
};

7. Artık Assembly Programmability sekmesi altındaki Assemblies altına, Prosedürümüz ise Stored Procedures altına eklendi.
8. CLR ile çalışabilmek için SQL SERVER da CLR nin kullanılabilir olması gerekir. Bunun için QUERY ANALYZER’a sırasıyla

sp_configure “clr enabled”,1   –CLR aktif hale gelir.

reconfigure  –Yeniden yapılandırma yapılır.
exec dbo.StoredProcedure1
–Artık SP nizi çalıştırabilirsiniz.

Yorum Yapılmamış

Bir cevap yazın