Menu Horisontal

Senin, 21 Mei 2012

Bagaimana caranya mengambil nilai Return Value dari Stored Procedure

 Sumber :http://www.yulianmf.com/Bagaimana-caranya-mengambil-nilai-Return-Value-dari-Stored-Procedure.aspx
Ada kalanya kita menggunakan return value untuk mengecek suatu kondisi pada sebuah table. Misalkan kita akan mengecek apakah sebuah table mempunyai record atau tidak, atau mungkin untuk mendapatkan error number dari T-SQL yang digunakan di dalam stored procedure bila terjadi error.
Pertama kita buat terlebih dahulu stored procedurenya. Asumsikan saya punya sebuah table namanya Books, kemudian kita ingin cek apakah table tsb mempunyai record atau tidak.

   1:  Create Proc TestReturnValue
   2:  As
   3:  Declare @retval int
   4:  Select @retval = Count(*) From Books
   5:  If @retval > 0
   6:      Begin
   7:          Set @retval = 1
   8:          Return @retval
   9:      End
  10:  Else
  11:      Begin
  12:          Set @retval = 0
  13:          Return @retval
  14:      End
Setelah itu kita buat aplikasi sederhana untuk test apakah stored proc tersebut berjalan sesuai dengan harapan :) . Asumsikan saya punya sebuah Button dimana code untuk EvenHandler Click nya spt dibawah ini :
   1:  Imports System.Data.SqlClient
   2:   
   3:  Public Class ReturnValueTest
   4:   
   5:      Private Sub btnCekRetVal_Click(ByVal sender As System.Object, _
   6:      ByVal e As System.EventArgs) Handles btnCekRetVal.Click
   7:   
   8:          Using myConn As New SqlConnection _
   9:          ("Database=AdventureWorks;Server=.\SqlDev2k5;" & _
  10:          "Integrated Security=SSPI")
  11:              Using myCmd As New SqlCommand
  12:                  With myCmd
  13:                      .CommandType = CommandType.StoredProcedure
  14:                      .Connection = myConn
  15:                      .CommandText = "TestReturnValue"
  16:                      .Parameters.Add("@retval", _
  17:                      SqlDbType.Int).Direction = _
  18:                      ParameterDirection.ReturnValue
  19:   
  20:                      myConn.Open()
  21:                      myCmd.ExecuteNonQuery()
  22:   
  23:                      Dim intRetVal As Int32 = _
  24:                      CType(myCmd.Parameters.Item("@retval").Value, _
  25:                      Int32)
  26:   
  27:                      If intRetVal = 0 Then
  28:                          MessageBox.Show("No Record on the" & _
  29:                          "Books table")
  30:                      Else
  31:                          MessageBox.Show("There are Record(s)" & _
  32:                          "on the Books table")
  33:                      End If
  34:                  End With
  35:              End Using
  36:          End Using
  37:      End Sub
  38:   
  39:  End Class
Ok...that's it...try this code at home :)

Tidak ada komentar: