Principales respuestas
RETURN desde Stored Procedure

Pregunta
-
Respuestas
-
¿Qué significado tiene el valor 0 o -1? ¿es un código que determina el estado de ejecución del procedimiento almacenado?
Tienes cuanto menos tres formas de devolver datos a través de un procedimiento almacenado, sí 0 o -1 es un valor que resulta de alguna evaluación propia de un proceso -independiente del estado del procedimiento almacenado- puedes retornar el valor mediante un parámetro de salida o como una columna de la lista de selección. Has uso de la cláusula RETURN únicamente cuando se trate de un código de retorno.
CREATE PROCEDURE dbo.NombreProcedimiento AS BEGIN --El valor 0 o -1 se retorna como una columna de la lista de selección SELECT CASE WHEN DATEPART(DAY, GETDATE()) < 15 THEN -1 ELSE 0 END END
- Aplicación
using (SqlConnection cn = new SqlConnection("Cadena de conexión")) { var cmd = new SqlCommand("NombreProcedimiento", cn); cmd.CommandType = CommandType.StoredProcedure; //Abrir conexión cn.Open(); //Ejecutar la consulta y recuperar el valor que retorna la consulta de selección int result = Convert.ToInt32(cmd.ExecuteScalar()); if (result == 0) { //... } else { //... } }
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
Todas las respuestas
-
los que retornan valores 0,1 puede ser una function ya que solo te retorna un parametro este puede ser TRUE /FALSE o 1/0 en tu caso.
Un procedimiento tambien puede retornar un valor o varios .
¿Cual es el valor que retorna?
Pues el select que haces es el 'valor que retorna'
- Propuesto como respuesta D A M N 1 S e l f sábado, 8 de julio de 2017 14:02
-
¿Qué significado tiene el valor 0 o -1? ¿es un código que determina el estado de ejecución del procedimiento almacenado?
Tienes cuanto menos tres formas de devolver datos a través de un procedimiento almacenado, sí 0 o -1 es un valor que resulta de alguna evaluación propia de un proceso -independiente del estado del procedimiento almacenado- puedes retornar el valor mediante un parámetro de salida o como una columna de la lista de selección. Has uso de la cláusula RETURN únicamente cuando se trate de un código de retorno.
CREATE PROCEDURE dbo.NombreProcedimiento AS BEGIN --El valor 0 o -1 se retorna como una columna de la lista de selección SELECT CASE WHEN DATEPART(DAY, GETDATE()) < 15 THEN -1 ELSE 0 END END
- Aplicación
using (SqlConnection cn = new SqlConnection("Cadena de conexión")) { var cmd = new SqlCommand("NombreProcedimiento", cn); cmd.CommandType = CommandType.StoredProcedure; //Abrir conexión cn.Open(); //Ejecutar la consulta y recuperar el valor que retorna la consulta de selección int result = Convert.ToInt32(cmd.ExecuteScalar()); if (result == 0) { //... } else { //... } }
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.