tengo un procedimiento almacenado de INSERT en sqlserver:
que me pasaron en el foro de sql server (ver abajo)
y lo ejecuto con este código (un poco minimizado pero basicamente) que
funciona... pero necesito que me devuelta "un valor"
(especificamente @error) del procedimiento almacenado... que debo agregar??
Dim cmd As SqlCommand = Nothing
If Not EstadoConexion Then
ConectarABaseDeDatos(CadenaConexion)'aca abre en sqlCnn
End If
cmd = New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@pIdPaso", SqlDbType.SmallInt)
cmd.Parameters.Add("@pDescripcion", SqlDbType.VarChar, 50)
cmd.Parameters("@pIdPaso").Value = datos.IdPaso
cmd.Parameters("@pDescripcion").Value = datos.Descripcion
cmd.Connection = sqlCnn
cmd.CommandText = "GrabaPasos"
cmd.CommandType = CommandType.StoredProcedure
sqlCnn.Open()
cmd.ExecuteNonQuery()
cmd.Dispose()
ALTER PROCEDURE GrabaPasos
@pIdPaso smallint,
@pDescripcion as varchar(50)
AS
SET nocount ON
DECLARE @error int
SET transaction isolation level SERIALIZABLE
BEGIN transaction
INSERT into Pasos
select isnull(max(IdPaso), 0) + 1, @pdescripcion
from Pasos
set @error = @@error
if @error != 0 begin rollback transaction return -1 end
commit transaction
return @@error
Leer las respuestas