SP’lerdeki Output parametreler, C#’daki ref parametre ile birebir aynıdır. Yani hem dışarıdaki değeri alıp kullanmak, hem de SP içerisinde değer atamak için kullanırız.
Basit bir örnek üzerinde inceleyelim. AdventureWorks veri tabanında, Production.Product tablosunu kullanarak ID’si parametre verilen ürünün adını ve fiyatını elde edelim. Ancak parametre olarak bu 3 değeri de kullanalım. Yani ürün adı ve fiyatı out parametre olarak verilsin ve değerleri SP içerisinde atansın.
CREATE PROC USERSP_UrunDetay
@productID INT,
@name VARCHAR(50) OUT,
@listPrice MONEY OUT
AS
SELECT @name=Name,@listPrice=ListPrice FROM Production.Product
WHERE ProductID=@productID
Şimdi de SP’yi execute edelim. Burada dikkat etmemiz gereken bir nokta var, @name ve @listPrice parametrelerinin değerleri içeride atanmış. Yani execute ederken, bu 2 değeri dışarıda tanımlayarak vermemiz gerekir.
DECLARE @outName VARCHAR(50),@outListPrice MONEY
EXEC USERSP_UrunDetay 1,@outName OUT, @outListPrice OUT
SELECT @outName[Ürün Ad],@outListPrice [Fiyat]
@outName ve @outListPrice değişkenlerini, SP içerisinden gelen @name ve @listPrice üzerindeki değerleri karşılamak için tanımladık. Çünkü bu 2 parametre output parametreydi. Bu sayede ID’si 1 olan ürünün ad ve fiyat bilgilerini elde etmiş olduk. Yukarıdaki kod bloğu çalıştığında aşağıdaki sonucu alırız.
4 yorum:
Emegine saglık
Gayet güzel olmus ama bide bunun c# tarafı olsayfı dahada iyi olurdu
Öncelikle teşekkür ederim.
C# tarafından kastınız nedir ? C# da out parametreler ile ilgili yazıyı aşağıdaki linkte bulabilirsiniz.
http://onursalkaya.blogspot.com.tr/2011/10/c-out-parametre.html
Eğer stored procedure'leri uygulama tarafında kullanmaktan bahsediyorsanız Entity Framework ile Stored Procedure kullanmak ile alakalı yazıya aşağıdaki linkten ulaşabilirsiniz.
http://onursalkaya.blogspot.com.tr/2011/11/adonet-entity-framework-ile-stored.html
Teşekkürler
Yorum Gönder