Ms Access ve Sql Server parametreli Stored Procedures
#1
[Resim: spbanner5.png]


Merhaba arkadaşlar;
Bugünkü konumuz MS Access üzerinden parametre göndererek Sql Server üzerinde Stored Procedures ( SP olarak anılacaktır) den veri almaktır.
Ayrıca bir önceki konumuzu da SP hakkında bilgi sahibi olmak için okumanızı öneririm.
http://www.access-sql.com/konu-ms-access...on-kontrol

Örnek konumuz ise şöyledir;

Access üzerinde sürekli formumuz vardır, bu forma kayıtlar yine SQL Server üzerinden ve SP ile gelmektedir. Bizim istediğimiz her alana ait filtre kullanmak ve o alana ya da alanlara göre kayıt çağırmak. Örneğin ismi “Ali” olanlar ya da ismi “A “ ile başlayanlar ya da ismi içinde “al” harfleri olanlar gibi. Access deki “like” fonksiyonu size çağrışım yapmıştır sanırım. Burda da like işlecini kullanacağız ama bu sefer SP içinde ve biraz daha farklı olarak.

Filtre alanlarımızın daha kullanışlı olması için de bir açılan kutu yapalım. İçindeki değerler, “ ..İle başlar”, “içerir”, “..ile biter” olsun. Yani biz filtre alanına bir değer girdiğimizde bu açılan kutudaki seçimimize göre davransın. Filtre alanına “b” yazarsak ve açılan kutudan içeriri seçersek içinde “b” harfi olan tüm isimleri bize versin. Bu açılan kutuyu soy ismi alanı içinde ortak kullanalım ve 2 alana göre seçim versin bize. Elbette tüm alanlar için kullanabiliriz sadece SP de değişiklik yapmamız gerekecektir. İsim ve soy isim alanları hariç alanlar içinse sadece eşitlik kullanacağım yani Doğum Tarihi, Giriş Tarihi ya da Maaş alanı filtresine ne yazarsanız o tarihe ait kayıtlar gelecektir. İsmi ve Soyismi “A” ile başlayıp maaşı “1.200 TL” olanları da görebilirsiniz tabii Wink

Filtre alanlarını boş ya da dolu bırakmak size kalmış, sonuçlar ona göre değişecektir.
Şimdi SQL Server üzerinde Sp mizi yazalım.




SQL
  1. /****** Object: StoredProcedure sp_personel Script Date: 06/16/2009 21:01:07 – Berkant Öztürk ******/
  2. SET ANSI_NULLS ON
  3. GO
  4. SET QUOTED_IDENTIFIER ON
  5. GO
  6.  
  7. CREATE PROCEDURE [sp_personel]
  8.  
  9. @ad nvarchar(50) = NULL,
  10. @soyad nvarchar(50)= NULL,
  11. @DogumTarihi datetime= NULL,
  12. @GirisTarihi datetime= NULL,
  13. @maas MONEY = NULL,
  14. @sec INT = NULL
  15.  
  16. AS
  17.  
  18. SET NOCOUNT ON;
  19.  
  20. IF @sec=1
  21. BEGIN
  22. SELECT * FROM personel WHERE ((@ad IS NULL) OR (ad LIKE @ad + '%' ))
  23. AND ((@soyad IS NULL) OR (soyad LIKE @soyad + '%'))
  24. AND ((@DogumTarihi IS NULL) OR (DogumTarihi = @DogumTarihi))
  25. AND ((@GirisTarihi IS NULL) OR (GirisTarihi = @GirisTarihi))
  26. AND ((@maas IS NULL) OR (maas = @maas ))
  27. END
  28.  
  29. ELSE IF @sec=2 BEGIN
  30.  
  31. SELECT * FROM personel WHERE ((@ad IS NULL) OR (ad LIKE '%' + @ad + '%' ))
  32. AND ((@soyad IS NULL) OR (soyad LIKE '%' + @soyad + '%'))
  33. AND ((@DogumTarihi IS NULL) OR (DogumTarihi = @DogumTarihi))
  34. AND ((@GirisTarihi IS NULL) OR (GirisTarihi = @GirisTarihi))
  35. AND ((@maas IS NULL) OR (maas = @maas ))
  36. END
  37.  
  38. ELSE
  39.  
  40. BEGIN
  41.  
  42. SELECT * FROM personel WHERE ((@ad IS NULL) OR (ad LIKE '%' + @ad ))
  43. AND ((@soyad IS NULL) OR (soyad LIKE '%' + @soyad ))
  44. AND ((@DogumTarihi IS NULL) OR (DogumTarihi = @DogumTarihi))
  45. AND ((@GirisTarihi IS NULL) OR (GirisTarihi = @GirisTarihi))
  46. AND ((@maas IS NULL) OR (maas = @maas ))
  47.  
  48. END



Gördüğünüz gibi bu SP mizde parametrelere NULL eşitliği de vererek varsayılan değerlerini null kabul ettik. Yani isim için bir filtre girerken diğer alanları boş bırakabiliriz. Yoksa tüm parametreleri vermek zorunda kalacaktık. Sp de “IF” ve ElSE” de kullandık ve @sec parametremize göre ( açılan kutudan gönderiyoruz parametreyi) ilgili SQL cümlesini çağırıyoruz. Elbette bu SP yi daha detaylı incelemek gerekir ama şu anki amacım SP nasıl yazılırdan çok SP den veri çekmek konusu. Umarım ilerleyen günlerde sadece SP konularına da gireriz.

SP den veri alan VBA kodlarımızı örnek üzerinde (MDB dosyasında) görebilirsiniz..

Bundan sonraki çalışmamız bir aksilik olmazsa yine Sql server ve üzerine yazacağımız SP ile bir lisans - demo çalışması olacaktır.

Bol SP li günler dilerim Wink


Not: Örneği MDE ekleme sebebim içinde server bilgilerimizin yer almasıdır ama birebir aynısını MDB olarak da ekliyorum. İçinde sadece server bilgileri yoktur, dolayısıyla bağlantı gerçekleştirmez.


Berkant Öztürk
www.Access-Sql.com

Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#2
mükemmel bir konu ellerine sağlık



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  C# Sql Server Tablosunu Local Database Transfer burhanb 0 374 04-03-2024, 12:43
Son Mesaj: burhanb
  Sql Server - Ms Access Bağlı Tablo Aracı (Sql Server To Ms Access Linked Table Tool) beab05 46 27.055 12-09-2019, 14:52
Son Mesaj: burhanb
  Ms Access ve Sql Server Bağlantısı beab05 66 56.340 23-12-2017, 11:39
Son Mesaj: sertac75
  SQL SERVER hakkında sedefkilic 0 1.412 15-04-2017, 11:41
Son Mesaj: sedefkilic
  SQL server tablosuna image (resim) nasıl eklenir ve Ms access formuna nasıl alınır abkbek 3 2.597 16-02-2016, 22:05
Son Mesaj: abkbek
  SQL server login ybuyulu 4 2.632 30-10-2015, 15:43
Son Mesaj: ybuyulu
access-sql-18 SQL Server Veritabanını Kopyalanmaya Karşı Nasıl Koruruz? karakabus 4 2.748 18-06-2015, 11:12
Son Mesaj: karakabus
access-sql-9 SQL SERVER(hastane otomasyonu) meyyraa 1 5.243 09-06-2015, 22:59
Son Mesaj: onur_can

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi