Anasayfa / Veritabanı / Stored Procedure Nedir ? Nasıl kullanılır ?

Stored Procedure Nedir ? Nasıl kullanılır ?

Projelerimizde hangi veritabanını kullanırsak kullanalım yazılan komutlar her çalıştırmada veritabanına gönderilir ve sonuç bize gönderilir.Eğer biz bu işlemi yapacak prosedürü veritabanımızda yazarsak her seferinde aynı işlemi yapmak zorunda kalmayız. 1 kere oluştururuz ve istediğimiz kadar kullanırız.Bunu fonksiyon mantığına benzetebiliriz.

   Bu işlem, projelerimiz için veritabanı işlemlerinde hız artışı sağlar.Ayrıca bir veritabanı sorgusu değiştirmek istersek, bunu sadece stored procedure içerisinde değiştirmemiz yeterli olacaktır.Aksi durumda komutu çalıştırdığımız her yerde sorgu cümlesini değiştirmemiz gerekecekti

   Stored procedure’lerin genel yapısı şu şekildedir;

CREATE PROCEDURE prosedürAdı ( degiskenler )
   Ek Bilgiler
BEGIN
   yazılacak procedure
END;

   Bu konu  için MSSQL veritabanını kullanacağım, kullanımını bunun üzerinden anlatacağım

   Veritabanımızı oluşturduktan sonra kisiler adında bir tablo oluşturuyoruz;

   Bunun için Object Explorer üzerinde veritabanımıza tıklıyoruz ve daha sonra Tablese sağ tıklıyoruz New Table diyerek alanlarımızı giriyoruz.Daha sonra Ctrl+S tuşlarına basarak tablomuza isim vererek (kisiler) kaydediyoruz ve çıkıyoruz.Tablomuzun görüntüsü şöyle olacaktır;

 

stored procedure

     

    Şimdi ise  sol taraftaki Object Explorer penceresinde Databases yanında bulunan + işaretine tıklıyoruz.Daha sonra çıkan veritabanları üzerinde hangi veritabanı için stored procedure oluşturmak istiyorsak o veritabanının yanındaki + simgesine tekrar tıklıyoruz

    Daha sonra Programmability ve ardından Stored Procedure ‘e sağ tıklıyoruz New Stored Procedure diyerek çıkan penceredeki açıklama satırlarını siliyoruz ve aşağıdaki kod satırlarını yazıyoruz

CREATE PROC ekle ( @ad varchar(10), @soyad varchar(10), @sehir varchar(10), @yas int, @cinsiyet varchar(6) ) AS BEGIN insert into kisiler values(@ad,@soyad,@sehir,@yas,@cinsiyet) END GO execute ekle 'Mehmet','Kirazlı','İstanbul',21,'erkek'

Açıklama

    Buradaki kodları açıklayalım.Prosedürümüzün adını ekle olarak ayarladık ve parantezler içerisine alacağı değişkenleri yazdık.Begin-End arasına Sql sorgumuzu yazıyoruz.Bu sorgu ekleme işlemi yapan sorgudur.Görüldüğü gibi 5 değer almaktadır.En alt satıra yazdığımız execute komutunda ise prosedürümüze göndereceğimiz değerleri verdik.Bu komut ile procedure çalışınca aynı anda kayıt da ekleyecektir.Bu işlemlerden sonra yazdığımız stored procedure için Ctrl+F5 e basarak debug ediyoruz.Daha sonra F5 e basarak stored procedur ‘u kaydediyoruz.Şimdi ise Programmability den stored procedur üzerine sağ tıklayarak Execute Stored procedure diyoruz ve kaydımızı ekliyoruz.Tablomuza kaydımız eklenecektir ve son hali ise aşağıdaki gibi olacaktır;

Stored procedure

 

  Stored Procedurlerin genel mantığı bu şekildedir.Siz de bunun üzerinden yeni tablolar ekleyebilir,daha karışık sorgular yazabilirsiniz.Örneğin daha geniş bir tablo oluşturarak,notu 60 dan yüksek öğrencileri veya maaşı 2000 den az olan çalışanları listeleyebilirsiniz

    Peki Asp.Net sayfalarında Stored Procedure erişimi nasıl olur? Bunun için bir ziyaretçi defteri tarzında bir şey yapalım.Default.aspx sayfamızın tasarımını aşağıdaki gibi hazırlayalım;

stored procedure
  Projemize veritabanı ekleme kısmını önceki yazılarda görmüştük.Veritabanını ekledikten sonra Yorum adında bir tablo oluşturalım ve yukarıdaki alanları veritabanına ekleyelim;

   Şimdi ise veritabanımızda stored procedure oluşturmamız gerekiyor.Bunun için yazımızın başındaki gibi procedure ekliyoruz,gerekli parametreleri giriyoruz.Stored Procedure adını StoredProcedure2 olarak kaydedelim

Son olarak Default.aspx sayfamızın kod tarafında

   using System.Data.SqlClient;
   using System.Data;

kütüphanelerini ekliyoruz

  Şimdi de Yorum yap butonuna tıklandığında yapılacak olanları yazıyoruz

protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection bağlantı = new SqlConnection("Data Source=.;Initial Catalog=yorumlar;");
SqlCommand komut = new SqlCommand("StoredProcedure2", bağlantı);
komut.CommandType = CommandType.StoredProcedure;
komut.Parameters.Add("@ad", SqlDbType.VarChar).Value = TextBox1.Text;
komut.Parameters.Add("@soyad", SqlDbType.VarChar).Value = TextBox2.Text;
komut.Parameters.Add("@eposta", SqlDbType.Text).Value = TextBox3.Text;
komut.Parameters.Add("@yorum", SqlDbType.Text).Value = TextBox4.Text;
komut.Connection.Open();
komut.ExecuteNonQuery();
komut.Connection.Close();

   YorumYap butonuna tıklanınca,textbox lara girilen değerleri veritabanına ekleyecektir.Bunları GridView kullanarak ekranda gösterebilirsiniz

 

  Yeni yazılarda görüşmek üzere….

Hakkında Mehmet Kirazlı

İstanbul Eyüp’te ikamet ediyorum. Giresun Alucra’lıyım. Bilgisayar Mühendisi bölümünden 2013 yılında mezun oldum. “Yeni Başlayanlar için Java 8” kitabının yazarıyım. Şuanda özel bir firmada Mobil Yazılım Geliştirme Uzmanı olarak çalışıyorum.

4 Yorumlar

  1. Adamsın Kirazlı. Videolu eğitimlerini de bekliyoruz.

  2. Eline sağlık panpa 🙂

  3. Muhammed Mastar

    Bilişim dünyasına kattığın bu değerli konular için şahsım ve tüm bilişim aşığı insanlar adına teşekkürü bir borç bilirim Kirazli Bey.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir