Autor Tema: mensaje de confirmacion o de error de procedimiento almacenado  (Leído 4300 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fre_saga

  • Sv Member
  • ***
  • Mensajes: 275
hola les pido que me ayuden a comprende como manejar los mensajes en un procedimiento almacenado
e estado probando y guarda perfectamente solo que no se como recuperar el mensaje generado de confirmacion o de error
Código: [Seleccionar]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE dbo.Sp_proveedor_guardar
  @NIT_PROVEEDOR  varchar(25),
  @TIPO_PROVEEDOR varchar(25),
  @NOMBRE_PROVEEDOR varchar(80),
  @NOM_CHE_PROVEEDOR varchar(80),
  @DUI_PROVEEDOR varchar(25),
  @REGISTRO_PROVEEDOR varchar(25),
  @DIRECCION_PROVEEDOR varchar(100),
  @PROFESION_PROVEEDOR varchar(80),
  @EDAD_PROVEEDOR int ,
  @TELEFONO_PROVEEDOR varchar(8), 
  @msg AS VARCHAR(100) OUTPUT

AS
BEGIN

    SET NOCOUNT ON;

    Begin Tran Tadd

    Begin Try


        INSERT INTO dbo.PROVEEDOR
        ( NIT_PROVEEDOR,
  TIPO_PROVEEDOR,
    NOMBRE_PROVEEDOR,
  NOM_CHE_PROVEEDOR,
  DUI_PROVEEDOR,
  REGISTRO_PROVEEDOR,
  DIRECCION_PROVEEDOR,
    PROFESION_PROVEEDOR,
  EDAD_PROVEEDOR,
  TELEFONO_PROVEEDOR)
          VALUES
          ( @NIT_PROVEEDOR,
  @TIPO_PROVEEDOR,
    @NOMBRE_PROVEEDOR,
  @NOM_CHE_PROVEEDOR,
  @DUI_PROVEEDOR,
  @REGISTRO_PROVEEDOR,
  @DIRECCION_PROVEEDOR,
    @PROFESION_PROVEEDOR,
  @EDAD_PROVEEDOR,
  @TELEFONO_PROVEEDOR)
 SET @msg = 'El Usuario se registro correctamente.'

        COMMIT TRAN Tadd

    End try
    Begin Catch

       SET @msg = 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(255), ERROR_LINE() ) + '.'
        Rollback TRAN Tadd

    End Catch


de esta manera lo trabajo en el vb.net 2010
Código: [Seleccionar]
Private Sub bt_guardar_Click(sender As System.Object, e As System.EventArgs) Handles bt_guardar.Click
        Dim mens As String = ""
        Dim guardar As New SqlCommand("Sp_proveedor_guardar", cn)
        guardar.CommandType = CommandType.StoredProcedure
        guardar.Parameters.AddWithValue("@NIT_PROVEEDOR", txt_nit.Text)
        guardar.Parameters.AddWithValue("@TIPO_PROVEEDOR", tipo.Text)
        guardar.Parameters.AddWithValue("@nombre_proveedor", txt_nombre.Text)
        guardar.Parameters.AddWithValue("@nom_che_proveedor", txt_nom_cheque.Text)
        guardar.Parameters.AddWithValue("@dui_proveedor", txt_dui.Text)
        guardar.Parameters.AddWithValue("@registro_proveedor", txt_reguistro.Text)
        guardar.Parameters.AddWithValue("@direccion_proveedor", txt_direccion.Text)
        guardar.Parameters.AddWithValue("@profesion_proveedor", txt_profecion.Text)
        guardar.Parameters.AddWithValue("@edad_proveedor", txt_edad.Text)
        guardar.Parameters.AddWithValue("@telefono_proveedor", txt_telefono.Text)
        guardar.Parameters.AddWithValue("@msg", mens)
        guardar.ExecuteNonQuery()
        cn.Close()
    End Sub

Desconectado Francisco™

  • The Communiter-
  • *
  • Mensajes: 1373
  • Bitch you make me hurl...
Re: mensaje de confirmacion o de error de procedimiento almacenado
« Respuesta #1 : agosto 02, 2013, 03:06:48 pm »
dale una revisada al manejo de parametros de entrada o salida, y como funciona la variable ParameterDirection

Código: [Seleccionar]
http://msdn.microsoft.com/en-us/library/59x02y99%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=vb

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: mensaje de confirmacion o de error de procedimiento almacenado
« Respuesta #2 : agosto 03, 2013, 09:22:12 am »
dale una revisada al manejo de parametros de entrada o salida, y como funciona la variable ParameterDirection

Código: [Seleccionar]
http://msdn.microsoft.com/en-us/library/59x02y99%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=vb
que feyo es sqlServer en postgres eso es más simple, pero sí free_saga esa es la forma
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado fre_saga

  • Sv Member
  • ***
  • Mensajes: 275
Re: mensaje de confirmacion o de error de procedimiento almacenado
« Respuesta #3 : agosto 03, 2013, 09:12:57 pm »
de esta forma quedo la forma de mostrar el mensaje generado  en el sp
Código: [Seleccionar]
cn.Open()
            Dim guardar As New SqlCommand("Sp_proveedor_guardar", cn)
            guardar.CommandType = CommandType.StoredProcedure
            guardar.Parameters.AddWithValue("@NIT_PROVEEDOR", TextBox1.Text)
            guardar.Parameters.AddWithValue("@TIPO_PROVEEDOR", TextBox2.Text)
            guardar.Parameters.AddWithValue("@nombre_proveedor", TextBox3.Text)
            guardar.Parameters.AddWithValue("@nom_che_proveedor", TextBox4.Text)
            guardar.Parameters.AddWithValue("@dui_proveedor", TextBox5.Text)
            guardar.Parameters.AddWithValue("@registro_proveedor", TextBox6.Text)
            guardar.Parameters.AddWithValue("@direccion_proveedor", TextBox7.Text)
            guardar.Parameters.AddWithValue("@profesion_proveedor", TextBox8.Text)
            guardar.Parameters.AddWithValue("@edad_proveedor", TextBox9.Text)
            guardar.Parameters.AddWithValue("@telefono_proveedor", TextBox10.Text)
            Dim msgparam As New SqlParameter("@msg", SqlDbType.VarChar, 100)
            msgparam.Direction = ParameterDirection.Output
            guardar.Parameters.Add(msgparam)
            Dim rowsAffected As Integer = guardar.ExecuteNonQuery()
            Dim mensaje As String = ""

            If rowsAffected > 0 Then
                ' mensaje = Convert.ToString(guardar.Parameters("@msg").Value)
                Label1.Text = Convert.ToString(guardar.Parameters("@msg").Value)
            Else
                Label1.Text = Convert.ToString(guardar.Parameters("@msg").Value)
            End If
            cn.Close()

ahora tengo una loca idea pero no se como seria la mejor forma de hacer lo siguiente
voy a tener una tabla con siertos campos  ejemplo
valor2|valor3|parametro|resul1|sesultatotal
200      200      0.50          100    400
200      200      0.50          100   
200      200      0.50          100   
200      200      0.50          100   

cuando se actualice parametro realice el calculo valor3*parametro=resul1
y sumar los resul1 y poner sesultatotal

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: mensaje de confirmacion o de error de procedimiento almacenado
« Respuesta #4 : agosto 05, 2013, 08:27:04 am »
busca sobre: triggers before update/insert

por cierto, siertos se escribe con c
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado Juancho

  • The Communiter-
  • *
  • Mensajes: 1311
Re: mensaje de confirmacion o de error de procedimiento almacenado
« Respuesta #5 : diciembre 14, 2013, 10:22:52 pm »
Por qué no utilizas la instrucción RAISERROR de MSSQL? Si haces eso puedes interceptar cualquier mensaje que quieras pasar a través de un bloque Try...Catch en .NET
<a href="http://www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/" target="_blank">
<img src="http://cache.www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/b_560x95.png" border="0" width="560" height="95" alt="" />
</a>