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.
Yapımına askerde başladığım ve ancak bitirebildiğim, içerisinde
bugüne kadar çeşitli sitelerde yayınlanan makalelerimin bulunduğu
e-kitabı bu linkten
bilgisayarınıza yükleyebilirsiniz. Başta ASP.NET ve ASP.NET AJAX
konularında yazdığım makalelerden ve yaklaşık 160 sayfadan oluşan bu
doküman umarım sizler için faydalı olur.
E-kitabımı zaman içerisinde yeni makalelerimle güncellemeye çalışacağım. Bu başlıktaki linkten veya www.umutluoglu.com adresinden güncel versiyonunu takip edebilirsiniz.
.NET ortamında, bir DataTable içerisinde yer alan herhangi bir değeri AcceptChanges metodunu kullanarak değiştirebilirsiniz.
dataTable.Rows[row][column] = "Yeni değer";
dataTable.Rows[row].AcceptChanges();
You can change data in a DataTable while using AcceptChanges method in .NET
dataTable.Rows[row][column] = "New value";
dataTable.Rows[row].AcceptChanges();
"ADO .NET ile EXCEL DOSYASINDAKİ BİLGİLERE ULAŞMAK" konulu
yazımda, .NET ortamında, ADO .NET nesnelerini kullanarak bir Excel
dosyasında verilere, veritabanındaki bilgilere ulaşırmış gibi nasıl
ulaşabileceğimize ve bu verileri yine ADO .NET nesneleri ile SQL
Server'a nasıl yazdırabileceğimiz konusunu anlatmaya çalıştım.
yazgelistir.com adresine üye iseniz, siteye login olduktan sonra
http://www.yazgelistir.com/Makaleler/1000000807.ygpx adresinden yazıma ulaşabilirsiniz.