Geri Git   SanalTahrip Bilişim Forumları > Genel > Programlama

Programlama Delphi,Visual Basic,C/C++,Pascal,Python,Kylix,Lazarus,Glade,Perl,Mono vb yazılımlar hakkında döküman paylaşabileceğiniz ve soru sorabileceğiniz forum alanızımıdır.

Tags: , ,

Yeni Konu Gönder Yanıtla
 
LinkBack Konu Araçları
Eski 03-12-2009   #1 (permalink)
Üye
Super Moderator
Avatar
 
ReKoBaa_61 kullanıcısının avatarı
Bilgiler
ReKoBaa_61 ReKoBaa_61 Çevrimdışı
Giriş: Jul 2006
Yaş: 23
Mesaj: 4,711
Konuları: 4589
Karizma
İtibar Gücü: 10
Karizma Puanı : 30
Karizma Seviyesi:
ReKoBaa_61 is on a distinguished road
Level
 Seviye: 50  
Ruh Hali:

Level: 50 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 247 / 1238
Güç: 1570 / 20233
Tecrübe: 55%

Teşekkür Tablosu

Ettiği Teşekkür: 0
92 Mesajına 139 Kere Teşekkür Edlidi
Varsayılan SQL Server Makale (1)

Bu Alana Reklam Vermek İstiyorsanız Buraya Tıklayınız


Daha önceki iki yazımızda SQL Server içinde yer alan hazır fonksiyonlar ve sistem fonksiyonlarından bahsetmiştik. Bu yazımızda ise konumuz kendi fonksiyonlarımızı yaratmak ve bunları sorgularımızda kullanmak üzerine.



Fonksiyonlar Stored Procudure ler gibi SQL Server üzerinde barındırılan, unique isim taşıması gereken yapılardır. Stored Procedure ler gibi dışarıdan "exec" vb bir komutla çalıştırılmazlar. Uygulama içinden kullanmak ve return değerini kullanmak gerekir.



Bir fonksiyon oluşturabilmek için gerekli syntax yapısı;




Kod:
CREATE FUNCTION
(
,

)
RETURNS
AS
Yapıya baktığımızda stored procedure de olduğu gibi bir DDL statement olan "Create" ifadesini kullandığımızı, hemen ardından fonksiyonumuz için bir isim belirlediğimizi ve ardından fonksiyonumuzun alacağı parametreleri ve veri tiplerini belirttiğimizi görüyoruz. Fonksiyonumuzun bir de return değeri var. Return ifadesinde bir değişken tanımlamıyor, sadece geri dönecek olan verinin tipini belirtiyoruz.



Basit bir örnek vermemiz gerekirse;




Kod:
Create Function StringBirlestir(@Isim nVarChar(50), @SoyIsim nVarChar(50)) Returns nVarChar(100)

BEGIN
Declare @Sonuc nVarChar(100)
Set @Sonuc = @Isim + ' ' + @SoyIsim
Return @Sonuc
END
GO
Yukarıdaki ifadeyi bir texte dökmek gerekirse;



"StringBirlestir" isminde bir fonksiyon yaratıyoruz. Fonksiyonumuz "Isim" ve "Soyisim" adında nVarChar(50) tipinde parametre alıyor. Ve fonksiyonun çalışmasının ardından sonucumuzu NVarChar(100) tipinde geri döndürüyoruz.



Begin..End blokları arasında ise fonksiyon işlevimizi tanımlıyoruz. Yani "Sonuc" adında bir değişken tanımlıyor. Bu değişkene parametre olarak aldığımız "Isim" ve "SoyIsim" değişkenlerinin değerlerini "+" ifadesiyle birleştirerek geri döndürüyoruz.



Şimdi gerçek bir fonksiyon örneği yapalım ve bunu sorgularımızda nasıl kullanacağımızdan bahsedelim.



ÖRNEK 1 : Örneğimizde oluşturacağımız fonksiyon "01012005" gibi bir formatta kaydedilmiş olan tarih ifadelerini "2005-01-01" gibi bir formata dönüştürsün. Bu iş için öncelikle bir tablo yaratalım ve "01012005" formatında tarihler girelim. Sonrada bunu parametre olarak alacak ve istdiğim formata çevirerek geri döndürecek olan fonksiyonumuzu yazalım.










Kod:
Create Function TarihFormatla(@Tarih nChar(10)) Returns DateTime

BEGIN
Declare @Sonuc DateTime
Set @Sonuc = Convert(DateTime, SubString(@Tarih,5,4) + '-' + SubString(@Tarih,3,2) + '-' + SubString(@Tarih,1,2))
Return @Sonuc
END
GO








Fonksiyonumuzu yarattık. Yukarıda da bahsettiğimiz gibi "ggaayyyy" formatındaki veriyi "yyyy-aa-gg" formatında geri döndürmesini sağladık. Şimdi hem çalışıp çalışmadığını görelim hemde uygulama içinden fonksiyonumuzu nasıl çağıracağımıza bakalım.




Kod:
Select ID, dbo.TarihFormatla(Tarih) from DEMO_TABLE




ÖRNEK 2 : Şimdiki örneğimiz ise stringleri birleştirmek üzerine olsun. Isim, Nick ve Soyisim den oluşan 3 parametre alsın ve bunları "Evren aka 'Mania' Ayan" gibi bir formatta birleştirerek ekrana getirsin.




Kod:
Create Function Birlestir(@X nchar(10), @Y nchar(10), @Z nchar(10)) returns nchar(50)

BEGIN
Declare @Sonuc char(50)
Set @Sonuc = @X + '" aka "' + @Y + ' ' + @Z
Return @Sonuc
END






Şimdide bu fonksiyonumuzu kullanalım.




Kod:
Select ID, Isim, Nick, Soyisim, dbo.Birlestir(Isim, Nick, Soyisim) from DEMO_TABLE1
__________________
!!!FORUMDAKİ ONLİNE FİLMLERİ (DivX) NASIL İZLERİM!!![Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]      [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]      [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]


[Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]      [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]

ReKoBaa_61 Çevrimdışı  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on Facebook
Alıntı Yaparak Cevapla
Konuyu Beğendin mi ? O Halde Konuyu Arkadaşınız ile Paylaşın =)
Okumuş Olduğunuz Sayfayı E-Mail ile Arkadaşınız ile Paylaşın !
Yanıtla

Bookmarks


Şu an bu konuyu görüntüleyen kullanıcı sayısı: 1 (0 üye ve 1 misafir)
 
Konu Araçları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Saat 09:33 AM.