Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2009, 11:13
therealzeta
 
Fecha de Ingreso: octubre-2009
Mensajes: 46
Antigüedad: 14 años, 6 meses
Puntos: 1
Uso de Transacciones y errores

Hola, tengo un pequeño problema con este sp. Lo que necesito es que si hay algun error al insertar un registro, me haga un rollback y luego me devuelva valor 0 al programa. Podrian decirme donde esta el error pues no estoy seguro si es en lso if then aninados, el uso de la transaccion o lso labels. Muchas gracias


DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_flo_TarjetasSave` $$
CREATE DEFINER=`root`arroba`localhost` PROCEDURE `sp_flo_TarjetasSave`(

In Opcion int
)
BEGIN


begin

SET AUTOCOMMIT = 0;
START TRANSACTION;

IF Opcion = 1 then -- inserta un registro

Insert into tbl_flo_tarjetas
(TarjetaNo, Saldo, Nombre)
Values (TarjetaNo, Saldo, Nombre);
Select arrobaa identity into Result;


IF error THEN
GOTO lblError;
END IF;

End if;

COMMIT TRANSACTION;

set Result = 1;
goto lblExit;

label lblError;
rollback transaction;
set Result = 0;

label lblExit;
select Result;


END $$