Wordpress Free ThemesOnline TipsArticles DirectoryForeclosure HelpHouse For Sale By OwnerHouse StagingProperty Management

Sql Server’da Dinamik Sorgu İle Cool Olun

| 12 Ekim 2011 | 2 Comments

Merhaba değerli okurlar…
Sql Server ile ilgili bu ilk makalemde günlük hayatta sıklıkla kullanılan Stored Procedure’lerde dinamik olarak sorgu oluşturma nasıl yapılır,ne işimize yarar vb sorulara cevap arıyor olacağız…Tabi ki bunu yaparken Stored Procedure’lerin faydalarından bahsedelim muhabbetine girmeyeceğim.Kullananlar yararlarını fazlasıyla görmektedirler zaten 🙂

Diyelim ki şöyle bir amacımız olsun :

Herhangi bir web sitesinde ürün karşılaştırma sistemi yapıyor olalım…Ancak öyle bir karşılaştırma sistemi ki sınırsız veya daha doğru bir ifadeyle ne kadar ürün karşılaştırma istenirse cevap verilebilecek bir sistem olsun…Asp.net,php,jsp vb web teknolojileriyle uğraşanlar hemen kafalarında algoritma üretmeye başlamışlardır  JJ Ama sorgumuz genel itibariyle aşağıdaki resimdeki  halleri alır :

Not : Uygulamada Microsoft’un örnek veritabanı olan Northwind kullanılmıştır…

Burada örnek olarak 3 tane istenmiş.Ama ya diyelim ki Ahmet isimli kullanıcı 5 tane karşılaştırmak istiyor, Mehmet 10 tane karşılaştırmak istiyor….Kimin ne kadar istediğini bilebilirmiyiz…?? L Dolayısıyla stored procedure kullansak bile kaç tane parametre almamız gerektiğini bu Select sorgularında olduğu gibi bilemeyiz…..

 

O nedenle sorguyu direkt olarak ben yazmıyorum…Procedure’a id ‘leri nvarchar tipinde aldırıyorum .Böylece sınırsız şekilde UrunID bilgisi alabilirim….

  

Tabiki örneğimiz gereği 150 karakter vererek o kadar ürün karşılaştırma yapmasını sağlıyorum J O kadar da karşılaştırılmaz herhalde J Amacı farklı bir şey değilse … 😀

Daha sonra sorguyu oluşturacak olan bir değişken tanımlıyorum ki o da nvarchar tipinde olmalıdır…
Bu sorgu select sorgusunun iskelet kısmını tutuyor olacak…İstenen kısımlara da tanımlamış olduğumuz @idler değişkenini ekleyeceğiz….

 

Evet  sevgili dostlar oluşturduğumuz sorguyu değişkeninin içine aldığımız bu id’leri  veriyoruz…Böylece sorgumuz oluşturulmuş oluyor….Ve hazırlattığımız bu sorguyu Exec  komutuyla çalıştırılmasını sağlıyoruz…Burada parantez içine almaya dikkat ediniz yoksa çalıştırdığımızda @sorgu değişkenini başka bir stored procedure sanıyor…

 

Neyse artık gelelim teste J

  

Sonra işi biraz psikopata bağlayıp :

 

İşler daha mı kolay oldu ne J  ….

 

Ürün arama sistemlerinde ürün detaylı arama, ilan arama  vb sistemlerde birçok seçenek bulunur. Hem de o kadar seçeneğin hepsini teker teker kontrol edip sorguyu yeniden yazmanız gerekebilir…Bu da devasa olarak zaman kaybı, hatta kod fazlalığı ve kod kirliliğine neden olabilir.
Bunları bu şekilde procedure üzerinden çok rahat bir şekilde halledebilirsiniz…Hemde çok daha performanslı olur..

Neyse J umarım yararlı bir makale olmuştur…Bir sonraki makalede görüşmek üzere….

 

 

Mustafa DAĞDELEN
Yazılım Uzmanı

 

RastGele Reklam Kodu


Etiketler: , ,

Kategori: SQL Server

Mustafa DAĞDELEN

Yazar Hakkında ()

Yorumlar (2)

Trackback URL | Comments RSS Feed

  1. Elinize sağlık Mustafa bey güzel ve bilgilendirici bir makale olmuş.

  2. Teşekkü ederim :):) İşinize yaradıysa ne mutlu 😉

Bir yorum yazın

Bir Yorum yazmak için giriş yapmalısınız.