Autor Tema: ayuda con OUT en un stored procedure  (Leído 3062 veces)

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

Desconectado Non Servium

  • Sv Member
  • ***
  • Mensajes: 426
  • Ilix Punx :)
ayuda con OUT en un stored procedure
« : agosto 24, 2009, 11:25:07 am »
Hola mi problema hoy es q stoy haciendo proc almacenados en sql server 2005 y programando en vs2008 y kiero usar una variable para retornar... bueno el ejemplo sencillo es algo asi del lado del servidor sql
Citar
CREATE PROC [dbo].[INV_SP_VerificarExistenciaMaterial]
@Condicion1 INT,
@Condicion2 INT,
@Existencia NUMERIC(18, 2) OUT
AS
SELECT @Existencia = Existencia
FROM dbo.MaterialesExistencias
WHERE CampoTabla1 = @Condicion1
AND CampoTabla2 = @Condicion2
<br><hr> bueno el problema esq no se como retornar la variable @Existencia con un comando q uso en vs2008
Citar
String SP = "EXEC INV_SP_VerificarExistenciaMaterial @Condicion1=" + id_unacosa + ", @Condicion2= " + id_otracosa; //+", @Existencia = " + Convert.ToInt32(Label2.Text);
            System.Data.SqlClient.SqlCommand Com = new System.Data.SqlClient.SqlCommand(SP, new System.Data.SqlClient.SqlConnection(EgresosMateriales.ConexionString));
            try
            {
            Com.Connection.Open();
            this.Label1.Text = --Aca le quiero dar el valor de @Existencia al label pero no se como hacerlo
            }
            catch(Exception ex)
            {
                Label1.Text = ex.Message;
            }
            finally{
                if (Com.Connection != null)
                    Com.Connection.Close();
            }
<br>Agradeceríia sus respuestas... graciaz  :mosh:
♫ Condenados a perder la libertad! Por no acatar las leyes que les asignaron. ♪ ♫
Decididos, decididos a emprender! Un camino largo y duro por no ser esclavos ♫


Watch

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda con OUT en un stored procedure
« Respuesta #1 : agosto 24, 2009, 05:30:43 pm »
antes que nada, no se para que ocupas un procedimiento almacenado para un operación como la del ejemplo, pero igual para gustos son los colores y como no estas preguntando si estoy deacuerdo con el uso empezemos con la práctica.....

en vb, create una función así:
public object RunProcedures(string sql)
{
    try {
        object result_ = null;
        SqlClient.SqlCommand cmd = new SqlClient.SqlCommand(sql, tkCon);
       
        result_ = cmd.ExecuteScalar;
       
        return result_;
    }
    catch (Exception ex) {
        throw new Exception("[RunProcedures]: " + ex.Message);
        return null;
    }
}




luego lo incorporamos a lo que ya tenes así:
Citar
String SP = "EXEC INV_SP_VerificarExistenciaMaterial @Condicion1=" + id_unacosa + ", @Condicion2= " + id_otracosa; //+", @Existencia = " + Convert.ToInt32(Label2.Text);
            System.Data.SqlClient.SqlCommand Com = new System.Data.SqlClient.SqlCommand(SP, new System.Data.SqlClient.SqlConnection(EgresosMateriales.ConexionString));
            try
            {
            Com.Connection.Open();
            this.Label1.Text =  RunProcedures(SP);
            }
            catch(Exception ex)
            {
                Label1.Text = ex.Message;
            }
            finally{
                if (Com.Connection != null)
                    Com.Connection.Close();
            }
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado Non Servium

  • Sv Member
  • ***
  • Mensajes: 426
  • Ilix Punx :)
Re: ayuda con OUT en un stored procedure
« Respuesta #2 : agosto 25, 2009, 12:18:00 pm »
D hecho tnia q ponerle al SP SELECT @Existencia AS Existencia al final xq sino no dvolvia nada... bueno gracias, lo hice con el ExecuteScalar() convertido a entero (Convert.ToInt32(Cmd.ExecuteScalar())... grax x tu ayuda men xD
♫ Condenados a perder la libertad! Por no acatar las leyes que les asignaron. ♪ ♫
Decididos, decididos a emprender! Un camino largo y duro por no ser esclavos ♫


Watch