manejo de errores en sql

FERCHULOPEZ
29 de Julio del 2004
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?