Hola
No puedo capturar el código de retorno si ocurre un error en la ejecución del Procedimiento Almacenado. El parámetro está definido en la aplicación, pero aún cuando falla la Transacción me entrega un valor Null = nada y la Transacción se aborta.
¿Como puedo leer ese código de error?
El objetivo es disparar un mensaje sobre la no grabación.
Código SQL
[-]
CREATE PROCEDURE GrabaComprVta @IDCliente Int, .... , @Er int output AS
///////////////
////////////
///////
BEGIN TRANSACTION
Select @IDCompr = MAX(IDComprobante) from Comprobante
///////////
/////// insert .......
///////
IF (@@ERROR<>0) GOTO TratarError
COMMIT TRAN
TratarError: -- // etiqueta
--Si ha ocurrido algún error llegamos hasta aquí
If @@Error<>0
BEGIN
set @Er = @@ERROR
ROLLBACK TRAN
END
GO
¿Está mal confeccionada la lógica de la transacción?