Que tal kikodelphi, y que te parece si lo haces de esta manera.
Código SQL
[-]
CREATE PROCEDURE GrabaComprVta @IDCliente Int, .... , @Er int output AS
BEGIN TRAN
declare @error int
Select @IDCompr = MAX(IDComprobante) from Comprobante
///////////
/////// insert .......
///////
set @error = @@error
IF @ERROR = 0
begin
COMMIT
select 'Correcto' as description
end
else
begin
rollback
select description from master.dbo.sysmessages where error = @error
end
GO
Espero te sea de utilidad.
Saludos.
Vicente López.