SQL Server - atrapar errores en sql

 
Vista:

atrapar errores en sql

Publicado por FERNANDO (3 intervenciones) el 29/07/2004 17:06:42
HOLA GENTE DEL FORO,
TENGO UNA DUDA Y QUERIA SABER SI ALGUIEN SABE QUE PUEDE ESTAR OCURRIENDO,
EL TEMA ES QUE TENGO UN SP A QUE LLAMA A UNO B EJ

PROC A
AS

BEGIN TRAN
EXEC @RESULTADO= B PARAM1, PARAM2

IF @RESULTADO = 1
BEGIN
COMMIT TRAN
RETURN 1
END
ELSE
BEGIN
ROLLBACK TRAN
RETURN -1
END

GO

ENTONCES SUPONGAMOS QUE DENTRO DEL SP B OCURRE ESTE ERROR!!

INSERT INTO @TABLA VALUES (99999999999, 'ESTO PRODUCE OVER FLOW')

ESTO PRODUCE UN ERROR DE OVER FLOW YA QUE EL CAMPO NUMERICO DE LA TABLA SUPONGAMOS QUE ACEPTA 5 DIGITOS NUMERICOS

IF @@ERROR <> 0 GOTO MAL

MAL:

RETURN -20

BUENO EL TEMA ES QUE EL STORE A RECONOCE EL ERROR DE B Y PONE EN EL RETURN -1 Y HACE EL ROLLBACK, PERO ESTE STORE A ES LLAMADO DESDE UNA COMPONENTE EN VB6 CON ADO Y ESTE RECIBE COMO ERROR 0 TENGO UNA APLICACION QUE RECOJE LOS ERRORES Y LOS INFORMA POR MAIL Y ESTE MUESTRA COMO SALIDA -1, PERO LA COMPONENTE RECIBE 0

¿aLGUIEN SABE QUE PUEDE OCURRIR?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:atrapar errores en sql

Publicado por @dece (34 intervenciones) el 29/07/2004 18:25:08
Creo que lo que ocurre es que debes devolver un mensaje de error a tu aplicacion en VB.

Utiliza Raiserror

IF @@ERROR <> 0
Raiserror ('Ocurrio Un error En el Proceso', 16,1)
RollBack Transacion

Espero te ayude en algo

@dece
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar