none
a select statement that assigns a value to a variable must not be combined with data-retrieval operations RRS feed

  • Pregunta

  • Estimados tengo el siguiente PROC ALMACENADO en el servidor de bdd______________________________________________________________

    lo unico que deberia hacer es devolver un valor calculado reemplazando unas varialbes con el valor 100

    y si funciona bien pero da error al llamar desde la aplicacion..

    alter

     

    PROCEDURE [dbo].[PA_USO_CHECK_FORMULA]

    @Formula

     

    nvarchar(1000),@salida float out

    AS

    SET

     

    @Formula=REPLACE( REPLACE(REPLACE(REPLACE( CAST(@Formula as nvarchar(1000)),'{L}', '100' ),'{M}','100' ),'{ME}','100' ) ,'{MP}','100')

    SET

     

    @Formula='select @sal= ' + @Formula

    DECLARE

     

    @definicion nvarchar(100)=' @sal float output'

    EXEC

     

    sp_executesql @Formula,@definicion,@sal =@salida OUTPUT

    En el codigo esta algo asi_____________________________________________________________________________________

     

    SqlCommand comandoSelect = new SqlCommand();

    comandoSelect.CommandType = System.Data.CommandType.StoredProcedure;

    comandoSelect.CommandText =

     

    "PA_USO_CHECK_FORMULA";

    comandoSelect.Parameters.Add(

     

    "@Formula", SqlDbType.NVarChar,1000);

    comandoSelect.Parameters.Add(

     

    "@salida", SqlDbType.Float, 4);

     comandoSelect.Parameters[

    "@salida"].Direction = ParameterDirection.Output;

    comandoSelect.Parameters[

     

    "@Formula"].Value = Formula; 

     

    AccesoDatosBase.ComandoSelect = comandoSelect; //bueno esta funcion e mia

     

     

    AccesoDatosBase.ComandoSelect.ExecuteNonQuery();

     

     

    return Convert.ToDouble(comandoSelect.Parameters["@salida"].Value);

     

     

    LA COSA ES QUE ME CUANDO EJECUTO DIRECTAMETNE EL PROC ALMACENAADO EN LA BDD

    TODO COOL PERO CUANDO LO LLAMO DESDE LA APLICACION ME ARROJA EL ERROR: 

    a select statement that assigns a value to a variable must not be combined with data-retrieval operations

    ALGUIEN SABE PORQUE? O QUE ESTA MAL? GRACIAS UN ABRAZO...

     

     

     

    lunes, 6 de septiembre de 2010 21:16