MANEJO DE ERRORES EN SQL

29/07/2004 - 17:12 por FERNANDO | Informe spam
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?
 

Leer las respuestas

#1 Gustavo Larriera [MVP SQL]
29/07/2004 - 18:35 | Informe spam
Puedes usar en el Sproc la sentencia RAISERROR para burbujear el error hacia
la aplicación cliente VB y allí procesarlo.

saludos
gux

Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"FERNANDO" wrote in message
news:685601c4757e$84599910$
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?

Preguntas similares