TRAER LO QUE EL RETURN GENERA

22/12/2005 - 18:56 por Marcelo | Informe spam
Hola a todos.. Felices fiestas

EStoy ejecutando un store porcedure desde .net 2003, pero no se como traer
desde sql 2000 el valor que me genera el return del store procedure. Si
aklguien me puede ayudar.

ssql = " exec sp_UpdOseries '
Dim cmduser As New SqlClient.SqlCommand(ssql, PCNN)
cmduser.Connection.Open()
cmdresults = cmduser.ExecuteNonQuery()

cmdresults solo me trae el numero de sentencias ejecutadas

UN abrazo


mpc

Preguntas similare

Leer las respuestas

#1 A.Poblacion
22/12/2005 - 19:42 | Informe spam
"Marcelo" wrote in message
news:
Hola a todos.. Felices fiestas

EStoy ejecutando un store porcedure desde .net 2003, pero no se como traer
desde sql 2000 el valor que me genera el return del store procedure. Si
aklguien me puede ayudar.

ssql = " exec sp_UpdOseries '
Dim cmduser As New SqlClient.SqlCommand(ssql, PCNN)
cmduser.Connection.Open()
cmdresults = cmduser.ExecuteNonQuery()

cmdresults solo me trae el numero de sentencias ejecutadas

UN abrazo


mpc



ssql = " exec sp_UpdOseries '
Dim cmduser As New SqlClient.SqlCommand(ssql, PCNN)
Dim param as New SqlParameter("RETURN_VALUE", SqlDbType.Int)
'En lugar del SqlDbType.Int poner el tipo correcto del valor devuelto
param.Direction = ParameterDirection.ReturnValue
cmduser.Parameters.Add(param)
cmduser.parameters.Add
cmduser.Connection.Open()
cmdresults = cmduser.ExecuteNonQuery()
Dim resultado as integer = param.Value
cmduser.Connection.Close()
Respuesta Responder a este mensaje
#2 Tristan
22/12/2005 - 22:51 | Informe spam
ssql = " exec sp_UpdOseries '
Dim cmduser As New SqlClient.SqlCommand(ssql, PCNN)
cmduser.Connection.Open()
cmdresults = cmduser.ExecuteScalar()


También podrías utilizar ExecuteReader y leer el resultado de una fila,
aunque ExecuteScalar está pensado precisamente para tu caso.


Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 A.Poblacion
23/12/2005 - 09:39 | Informe spam
"Tristan" wrote in message
news:
ssql = " exec sp_UpdOseries '
Dim cmduser As New SqlClient.SqlCommand(ssql, PCNN)
cmduser.Connection.Open()
cmdresults = cmduser.ExecuteScalar()


También podrías utilizar ExecuteReader y leer el resultado de una fila,
aunque ExecuteScalar está pensado precisamente para tu caso.



No, eso no valdría. Tanto el ExecuteScalar como el ExecuteReader te
traen el resultado que se genere con una SELECT dentro del procedimiento
almacenado, pero no te traen lo que devuelva el procedimiento con un RETURN.
Para eso hay que usar un SqlParameter que tenga ReturnValue en la propiedad
Direction.
Respuesta Responder a este mensaje
#4 Tristan
23/12/2005 - 17:35 | Informe spam
La verdad es que cuando ha hablado de traer lo que el Return genera solo he
pensado que quería obtener el resultado del sproc.

En realidad bastaría sustituir el Return del sproc por Select para poder
utilizar ExecuteScalar, lo he visto incluso en ejemplos de Microsoft. Pero
lo cierto es que debe ser más eficiente utilizar un parámetro de retorno
puesto que se evita generar un conjunto de resultados.

En fin, siento el error de interpretación.

Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida