Stored Procedure Oluşturulması ve Kullanımı

Sql Server ile veritabanı üzerinde yapılan sorgular (select), veri girişleri (insert), veriler üzerinde yapılan güncellemeler (update) ve verilerin veritabanından kaldırılması (delete) gibi işlemleri her seferinde ilgili komutu yazarak işleme koymak Sql Server üzerinde yük oluşturur. Her yazılan sorgu komutu için Sql Server komutu yazım kuralları açısından (syntax) denetler ve sonraki aşamada ilgili tabloların ve alanların var olup olmadığının kontrolü yapılır ve son olarak en kısa ve en hızlı sorgunun nasıl yapılacağı belirlendikten sonra ilgili Sql scripti derlenir ve komut çalıştırılır. İşte biz Sql Server’a bu kadar işi her seferinde tekrarlatmamak için “Stored Procedure” (saklı yordam) adını verdiğimiz yapılardan faydalanırız. Stored Procedure (kısaca sp veya procedure) kullanılarak komutun derlenmesine kadar olan aşamaları bir kez tamamlanır ve procedure her çağırıldığında sadece ilgili komutun çalıştırılması sağlanır. Böylece Sql Server üzerinde daha performanslı sorgular ve komutlar çalıştırılmış olur.

Stored Procedure’ ler hem sorgu komutlarında hem de insert, update ve delete işlemlerinde kullanılabilir. C# taki kullanılan metot (yordam) kavramına benzerler. Parametre alabilirler ve geriye değer döndürebilirler. Geriye değer döndürme işlemi “return” anahtar kelimesi ile yapılır.

Stored Procedure tanımlamasını iki şekilde göstereceğiz. İlk olarak parametresiz bir procedure yazımının şablonunu verelim:

create proc/procedure   <procedure adı>                                                                          as                                                                                                                                     begin                                                                                                                                                                                                                                                                       < yazılacak ilgili sorgu komutu>                                                                                     

end

İkinci olarak ise parametreli bir procedure yazımının şablonunu verelim:

create proc/procedure   <procedure adı>

(

@prm1,

@prm2   

as

begin                                                                                                                                                                                                                                                                       < yazılacak ilgili sorgu komutu>                                                                                       

end

Procedure’ lere isim verilirken genellikle “usp” ön takısı verilerek isimlendirilirler. Ayrıca procedure ler de metotlar gibi iç içe çağrılabilirler. Procedure oluşturulurken “with encryption” ifadesi eklenirse procedure şifrelenmiş olur. Şimdi bir adet parametre almayan bir procedure oluşturalım:

Yukarıda görüldüğü gibi AdventureWorks veritabanı kullanıma alınmış ve spUrunleriGetir adlı bir procedure oluşturulmuştur. Burada dikkat edilmesi gereken nokta oluşturulan procedure çalıştırılmak istendiğinde “exec <procedure adı>” şeklinde çağırılması gerektiğidir. Aynı şekilde “execute <procedure adı>” şeklinde veya direkt olarak “<procedure adı>” yazılarak da ilgili procedure çalıştırılablir. Son olarak bir de parametre alan ve geriye değer döndüren bir sp yazalım:

Yukarıdaki örneğimizde alınan “@ID” parametresine “3” değeri verilmiş olup geriye bu kategoriden 22 adet ürün olduğunu “return” anahtar kelimesi ile aldık ve procedure çağırıldığında dönüş değeri bir değişkende tutularak ekrana sonucunu yazdırmış olduk.

Yazar: Abdullah ALTINTAŞ

Partial Class Kavramı

C# programlarımızda bazı sınıf (class) lar çok fazla sayıda sınıf elemanına sahip olabilir. Özellikle büyük projelerde sınıfların karışık yapıda olmasını engellemek için sınıfı belirli parçalara bölmek daha mantıklı bir yol olacaktır. Böylece sınıfın ve projenin görünümü ve yönetimi daha kolay bir hal alacaktır. İşte bu yüzden büyük sınıflarımızı C# taki “partial” anahtar kelimesi yardımıyla parçalara bölebiliriz. Bunu yapabilmek için parçaya ayırdığımız class ın başına “partial” eklememiz yeterli olacaktır.

Aşağıdaki örneğimizde bir adet sınıfımızı mantıklı olacak bir şekilde özellikleri(properties) bir parçada, metotları(methods) da ayrı bir parçada tutarak class ın karışık bir yapıda olması önlenmiş olur ve yönetimi kolaylaşır.

Görsel

Burada “Sinif” adlı class ımız partial anahtar kelimesi ile bölümlenmiş ve class a ait değişkenler bu parçada tanımlanmışlardır.

Görsel

Burada ise yine aynı class a ait metotlar bu sefer farklı bir parçada tutularak özellikler ile birbirine karışması engellenmiş olur.

Partial class kavramı WindowsForms uygulamalarında da karşımıza çıkmaktadır. Formun designer bölümü bir parçada kodlama bölümü ise ayrı bir parçada tutularak programcıya kolaylık sağlanmıştır. Her ne kadar sınıfımız parçaya ayrılmış gibi görünse de program çalıştırıldığında class ımız tek class gibi hareket edecek ve parçaya ayrılmış olan kodlarımız derlenip program tarafından bir bütün olarak çalıştırılacaktır.

Yazar: Abdullah ALTINTAŞ