Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda sobre Handlers en MySql

Estas en el tema de Duda sobre Handlers en MySql en el foro de Mysql en Foros del Web. Hola, saludos, mi problema es que no se como recuperar el error que ocurio en un storeproc para devolverlo y en mi programa saber que ...
  #1 (permalink)  
Antiguo 20/02/2012, 18:09
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 2
Duda sobre Handlers en MySql

Hola, saludos, mi problema es que no se como recuperar el error que ocurio en un storeproc para devolverlo y en mi programa saber que decirle al usuario

Vamos ver la cosa seria asi.

yo tengo un procedimiento almacenado como el siguiente:

BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK
SELECT CONCAT('Ocurio un elrror :') as "Result";

END;

START TRANSACTION;

INSERT INTO usuarios VALUES(DEFAULT,vusuario,vpassword,vnivel);
SET @vid = LAST_INSERT_ID();
INSERT INTO tcomerciales VALUES(DEFAULT,vnombcomer,vid,vapellidocomer,vmail comer);
COMMIT;

END


O sea que si ocurre un error yo aborto mi transaccion y aki es donde me trabo no se que variable o como para devolver el error que a ocurrido porque sino esto se ejecuta bien pero en mi programa no puedo darle informacion al usuario porque no sé que error sucedió

Gracias de ante mano porque esta tonteria me esta vovliendo loco.
  #2 (permalink)  
Antiguo 21/02/2012, 05:41
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 10 meses
Puntos: 42
Respuesta: Duda sobre Handlers en MySql

Hola yoemmx,

En versiones 5.1.x o inferiores de MySQL es complicado lo que necesitas, quizás algo como 12.7.5.18. SHOW ERRORS Syntax te pueda ayudar.

En versiones recientes 5.5.x y posteriores hay nuevos mecanismo para lograr lo que necesitas, por ejemplo: 12.6.7.3. RESIGNAL Syntax, 12.6.7.4. SIGNAL Syntax desde MySQL 5.5 o 12.6.7.3. GET DIAGNOSTICS Syntax desde MySQL 5.6.

Espero te sea útil la información.
  #3 (permalink)  
Antiguo 21/02/2012, 07:44
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Duda sobre Handlers en MySql

Gracias wchiquito

al final resolvi con RESIGNAL de esta manera:

BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
RESIGNAL; #poniendo esto aki me devuelbe el error
END;

DECLARE CONTINUE HANDLER FOR SQLWARNING
BEGIN
ROLLBACK;
RESIGNAL; #poniendo esto aki me devuelbe el error
END;

START TRANSACTION;

INSERT INTO usuarios VALUES(DEFAULT,vusuario,vpassword,vnivel);
SET @vid = LAST_INSERT_ID();
INSERT INTO tcomerciales VALUES(DEFAULT,vnombcomer,@vid,vapellidocomer,vmai lcomer);

COMMIT;


END

De esta forma ejecuta el ROLLBACK y tambien me devuelve el error, OJO funciona pero no se si es correcto porque tengo la cabeza echando Humo ahora mismo y me lei la descipcion por arriba porque esta en ingles, luego lo leere con mas calma.

Muchas gracias de nuevo.
PD: otro pregunta por si sabes, no me funciona el componente storeproc en delphi for php, tienes alguna idea de esto bueno gracias

Etiquetas: handlers, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.