Foros del Web » Programando para Internet » ASP Clásico »

Retorno de Procedimiento Almacenado

Estas en el tema de Retorno de Procedimiento Almacenado en el foro de ASP Clásico en Foros del Web. Saludos! Tengo un Procedimiento Almacenado en SQL Server que actualiza los datos de cierta tabla, este procedimiento no me devuelve ningún valor... Cómo saber qué ...
  #1 (permalink)  
Antiguo 29/04/2004, 13:45
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
Información Retorno de Procedimiento Almacenado

Saludos!

Tengo un Procedimiento Almacenado en SQL Server que actualiza los datos de cierta tabla, este procedimiento no me devuelve ningún valor...

Cómo saber qué valor me está devolviendo, algo así como un estado o un objeto error, para verificar que el procedimiento se ha ejecutado correctamente?

Gracias!
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #2 (permalink)  
Antiguo 30/04/2004, 02:35
 
Fecha de Ingreso: enero-2004
Mensajes: 154
Antigüedad: 21 años, 3 meses
Puntos: 0
Lo que puedes hacer es que al final del proceso si ha habido algún error devuelva un código de error y si no un 0.

Esto es sencillo , ya que seguro que sabes los tipos de errores que puede producir el procedimiento por lo que lo normal es que al principio definas una variable @CodigoError y la pongas con valor 0.
Si el código cumple cualquier condición de error cambias esa variable al código de error que se merece y al final del procedimiento solo tienes que poner : select @CodigoError

Saludos!!!!
  #3 (permalink)  
Antiguo 30/04/2004, 06:24
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
Hola! gracias por tu respuesta...

Me quedó clara tu explicación, sin embargo estoy iniciándome en esto de los procedimientos almacenados, y no sé como capturar los errores dentro de estos... podrías poner un ejemplo de lo que me acabas de explicar?

Gracias, de nuevo.

Saludos!
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #4 (permalink)  
Antiguo 30/04/2004, 06:57
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 21 años, 3 meses
Puntos: 0
Para capturar un error en un procedimiento almacenado hay una variabele predefinida que te informa de si se ha comentido alguno.

Simplemente pon al final de tu procedimiento almacenado

if @@ERROR<>0
BEGIN
'ha habido un error
END
ELSE
BEGIN
'no ha habido error
END
  #5 (permalink)  
Antiguo 30/04/2004, 08:07
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
Ahh, entiendo... y entonces, si en el If o el Else pongo un return con un valor 0 para "OK" y 1 para "Error" (por poner un ejemplo sencillo), cómo puedo capturar eso desde ASP?

Saludos!
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #6 (permalink)  
Antiguo 30/04/2004, 08:27
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 21 años, 3 meses
Puntos: 0
Para capturar eso desde ASP, pones en el procedimiento almacenado

if @@ERROR<>0
BEGIN
select 0 as retorno
END
else
BEGIN
select 1 as retorno
END


Y asi te devolvera un recordset y podras gestionarlo en ASP
  #7 (permalink)  
Antiguo 30/04/2004, 08:30
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
Ok, entonces "Retorno" tiene que estar definida como Output en el encabezado del SP, verdad?

Gracias a todos por la ayuda...

Saludos!
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:07.