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?

Preguntas similare

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?
Respuesta Responder a este mensaje
#2 FERNANO
29/07/2004 - 19:36 | Informe spam
ok, AMIGo mUCHAS GRACIAS YA LO PUDE SOLUCIONAR.
de todas formas agradezco tu colaboracion!!


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?


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida