Henüz SP ( stored procedure ) ile yeni ilgililer yada orta düzey projeler için kullanan birçok kişinin zaman içerisinde sıkıntı çektiği yada çektiğini düşündüğüm birşeydir output okuma. Toplam kayit dönüşlerinde yada insert sonrası bilgi dönüşlerinde update sonrasi bilgi dönüşlerinde ve daha birçok noktada, çoğu kez kullanılması icab eden fakat SP ile yeni ilgilenenlerin kafasini karıştıran bir durumdur SP output …Öncelikle kullanacağımız SP ‘nin kodlarını paylaşarak başlamak isterim …SP ( Stored Procedure ) kodları :
CREATE PROCEDURE SP_OUTPUT_SAMPLE@GET_ID int,@OUT_TP int = Null OUTPUT,@OUT_TX int = Null OUTPUTASBEGINSELECT @OUT_TP = Count(REG_ID) FROM MESSAGES WHERE USER_ID = @GET_IDSELECT @OUT_TX = Count(REG_ID) FROM INVITES WHERE USER_ID = @GET_IDEND
Gördüğünüz gibi SP mize giren bir veri çıkan (output) iki veri mevcut. Şimdi de isterseniz bu çıktıyı asp ile nasil okuyacağımıza gelelim …Asp Kodlarımız :
<%Set AdoCon = Server.CreateObject("ADODB.Connection")AdoCon.Open "Provider=SQLOLEDB;server=SERVER;DATABASE=DATABASE;UID=USER;Password=PASS;Trusted_Connection=yes;"Set cmd = Server.CreateObject("ADODB.Command")cmd.ActiveConnection = AdoConcmd.CommandType = adCmdStoredProccmd.CommandText = "SP_OUTPUT_SAMPLE"cmd.Parameters.Append cmd.CreateParameter("@GET_ID",adInteger,adParamInput)cmd("@GET_ID")= 1 ' Giren ID Değeri ...cmd.Parameters.Append cmd.CreateParameter("@OUT_TP",adInteger,adParamOutput)cmd.Parameters.Append cmd.CreateParameter("@OUT_TX",adInteger,adParamOutput)cmd.Execute()Response.write "Toplam "& cmd("@OUT_TP") &" mesajınız mevcut."Response.write "Toplam "& cmd("@OUT_TX") &" davetiniz mevcut."%>
Şeklinde olacaktır. Output çıktılarında yazı kullanabilir veya birden fazla bilgiyi bir araya getirebilirsiniz. Kullanacağınız alana göre yapacağınız işlem değişkenlik gösterecektir. Fakat şunu da belirtmek isterim ki sadece SELECT @OUTPUT_ISMI = ‘Merhaba !’ şeklinde de tanimlayabilirdiniz. Output ihtiyacı duyup çözüm bulamayanların işine yaraması ve bir sonraki “sınırsız alt kategori” başlığında görüşmek ümidiyle …Saygılar …