|
|
|
| TÜRKİYE'NİN BİLGİ TEKNOLOJİLERİ DERGİSİ | BİZE ULAŞIN | DÜNYA YAYINCILIK A.Ş. |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|
||
|
|
||
![]() ![]() ![]()
Web sitenizi dergimizde tanıtmak, BYTE Dergi, CD, TV ve Online ile ilgili görüş ve önerilerinizi bizlere ulaştırmak için
Okur hattı bölümünü kullanabilirsiniz. ![]() ![]() |
Makaleler
SQL Server 2005 ve CLR Entegrasyonu
SQL Server 2005 ve CLR Entegrasyonu
Bu yazımızda veritabanı dünyasına farklı bir bakış açısı getirecek olan SQL Server 2005’in CLR entegrasyonunu inceleyeceğiz.
SQL Server 2005 (Yukon) getirmeyi vadettiği yeni özellikleri ile veritabanı programlama konusunda bambaşka bir bakış açısı sunuyor. SQL Server 2005’in getirdiği bir çok yeni özelliğin arkasında CLR ile entegrasyonu yatıyor. .net framework'un çekirdeği olan CLR SQL Server 2005 ile birleştirilmiş durumda. Yani artık veritabanı sunucumuz .net'çe konuşabiliyor. Örneğin C# ile yazdığınız kodları SQL Server 2005 kendi üzerinde çalıştırıbiliyor ve bu kodları VB.NET ile yazdığımız kodlarla hiç bir sıkıntı yaşamadan entegre edebiliyor.. Şu ana kadar yapılagelmiş yöntem iş katmanını bildiğimiz yüksek seviyeli programlama dilleri ile oluşturmak, veri katmanını ise veritabanı sunucumuzun bize sağladığı T-SQL olanaklarıyla oluşturmaktı. Genel problemler için gayet makul olan bu yöntem veri katmanında, veritabanı dışında bazı işler gerçekleştirmek istediğimizde yetersiz kalmaktaydı. Örneğin SQL Server üzerinde oluşan bir hatanın Event Log (Seyir kaydı) olarak yazılmasını T-SQL ile sağlamak pek kolay olmamaktaydı. Genişletilmiş saklı yordamlar (extended stored procedures) ise bunu c++ dili ile mümkün kılmakta, fakat uyulması gereken arayüzler ve kodlama zorluğu bu sorunu pratik olarak çözmemekteydi. SQL Server 2005 bu tarz işlemleri rahatlıkla yapabilmemize olanak sağlıyor. Peki nasıl mı ? Bu soruyu bir örnek ile cevaplandıralım. SQL Server 2005 altında .net kodlarını çalıştırabilmek için yapılması gerekenler adım adım şöyledir; 1. .net kodlarıyla bir sınıf kütüphanesi oluşturun ve derleyin. (SQL Server 2005 .exe uzantılı dosyaları çalıştırmaz. .dll uzantılı derlenmiş kütüphaneleri çalıştırır.) Burada dikkat edilmesi gereken sınıfın public yordamların ise static (vb.net'te shared) olması gerekliliğidir. Şimdi bu adımları sırasıyla uygulayalım. Önce csYukonOrnek isimli yeni bir class library projesi oluşturun ve otomatik olarak oluşturulan şablon sınıf dosyasının ismini csYukonLibrary.cs olarak değiştirip içine aşağıdaki kodları yazın; using System;
Derlediğimizde oluşan dll 'i aşağıdaki, SQL Server 2005 Management Studio içine yazacağımız kod ile sunucumuza kaydedelim; CREATE ASSEMBLY asmYukon FROM 'C:\csYukonLibrary.dll'
Şimdi de oluşturacağımız saklı yordam ile bu assembly'i sarmalayalım; CREATE PROCEDURE [dbo].[spCLRToplama] Bu bölümde dikkat ederseniz T-SQL'e yeni eklenen EXTERNAL NAME deyimi ile oluşturduğumuz assembly'nin mantıksak olarak tam yolunu belirtiyoruz. Dikkat edilmesi gereken nokta .net ile oluşturduğumuz fonksiyon ile stored procedure aynı tip parametreler almak zorundadır. (Bu örnekte her ikisi de integer tipinde iki parametre almaktadır.) Artık bu stored procedure sayesinde .net ile oluşturduğumuz bir fonksiyonu istediğimiz yerde kullanabiliriz. Buraya kadar yaptığımız işlemler sonucu bir assembly'i (asmYukon) Yukon üzerinde çalışmak üzere kayıt ettik ve onu kullanacak bir stored procedure (spCLRToplama) oluşturduk. Management Studio'dan kontrol ettiğimizde bu nesneleri aşağıdaki gibi görebiliriz ; DECLARE @Sonuc INT Kasım Gülcan Globus BYTE'ın yazarlarındandır. Kendisine kasimgulcan@sqlnedir.com adresinden ulaşabilirsiniz.
|
|
||||||||||||||
|
|
![]() |
|
| ANA SAYFA | FORUM | ABONE OLUN | BİZE ULAŞIN
Sitelerimiz: pcworld.com.tr | computerworld.com.tr | dunya.com | dunyastore.com
|
©2004 - 2009 BYTE Türkiye |