
27/10/2009, 11:13
|
| | Fecha de Ingreso: octubre-2009
Mensajes: 46
Antigüedad: 15 años, 5 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 $$ |