SQL Server 2005 ve ADO.NET 2.0 ile gelen yeniliklerden sonra çoğunuzunda bildiği gibi .NET ortamında hazırladığınız nesneleri SQL Server sunucusu üzerinde CLR (Common Language Runtime) desteğiyle çalışmasını sağlayabiliyoruz. Oluşturulan bu nesnelerin IL çıktıları .dll'dir, dolayısıyla ilk bakışta nesneleri kodlama aşamasında nasıl debug işlemine tabi tutacağımız bizler için soru işareti olabilir. Bu başlıkta .NET tabanlı bir dilde yazdığımız CLR SQL kodlarımızın çalışmasını debug etmek, kodların takibini ve analizini yapmak için oluşturulan projede nasıl bir yol izleyeceğimizi anlatmaya çalışacağım.
"SQL Server Projects" şablonunu oluşturduğunuzda proje içerisinde Test Script adında bir klasör ve içerisinde örnek kodları içeren Test.sql adında bir dosya bulunmaktadır. Debug işlemi için öncelikli olarak nesneyi çalıştıracak bir SQL ifadesine ihtiyacımız olacaktır. Bu dosya SQL ifadesinin veya ifadelerinin saklanacağı yerdir. Nesneyi oluşturduktan sonra öncelikli olarak bu dosyaya nesneyi test etmemizi sağlayan SQL cümlesini ekliyoruz.
Bu işlemin ardından Test.sql dosyasını projemizin varsayılan script dosyası olarak seçmemiz gerekiyor. Solution Explorer'da dosyanın üzerine sağ tıkladığımızda karşımıza çıkan Set as Default Debug Script seçeneğinden dosyayı varsayılan debug dosyası olarak belirliyoruz. İlgili seçenek sağ kısımda yer alan resimde görülmektedir.
Nesneyi oluşturduktan sonra debug işlemini başlatacağımız satıra breakpoint ekliyoruz. Bu işlemin ardından projemizi yayınlayıp IL çıktısını üretmemiz ve çalıştırmamız gerekecektir. Bu işlem için Solution Explorer'da projemizin üzerine sağ tıklayıp Deploy seçeneğini seçiyoruz.
Artık projeyi debug modunda çalıştırıp kodların adım adım takibini yapabiliriz. Bu işlem için yine Solution Explorer'dan az önce debug dosyası olarak ayarladığımız Test.sql dosyasına sağ tıklayıp Debug Script seçeneğine tıklıyoruz. Dosya içerisindeki sorgu çalıştırılacak ve derleyici seçtiğimiz satıra geldiğinde Visual Studio debug moda geçecektir.
Bu şekilde bir CLR SQL nesnesini oluşturan kodların debug edilmesi sağlanabilir. Özellikle karmaşık User Defined Function, Stored Procedure ve Trigger oluşturduğumuz durumlarda nesneyi sürekli SQL Server'a taşımak, burada çalışma sonucuna göre tekrar Visual Studio'ya dönüp değişiklikleri yapmak uzun ve çözümü zor bir yol olabilir. İşte bu tip durumlarda nesnenin SQL Server'a gitmeden doğrudan CLR üzerinde çalışmasını debug edebilmek biz programcıların işini oldukça kolaylaştıracaktır.
Hiç yorum yok:
Yorum Gönder