MySQL Forums
Forum List  »  Spanish

Re: Procedimientos almacenados
Posted by: Faustino Forcen
Date: September 01, 2006 11:46AM

Tienes que usar condition handlers. defines uno de estos handlers para cada tipo de excepción que quieras manejar, usando el número del error que quieres interceptar, o las condiciones SQLEXCEPTION, SQLWARNING y NOT FOUND (hay más posibilidades, mira el manual).


en este caso declaro una variable numérica...
DECLARE insert_error INTEGER DEFAULT 0;

declaro el handler que se ejecutará en caso de un SQLEXCEPTION. el handler puede ser de tipo EXIT (sal del procedure) o CONTINUE (el procedure sabe cómo salir del problema, no lo interrumpas)

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN
SET insert_error=1;
END;

START TRANSACTION

insert into ejemplo(nombre, apellidos) values (´Alain´, ´ramos´)

si SQL lanza alguna excepcion el valor de insert_error ya no será 0

IF insert_error THEN
ROLLBACK
ELSE
COMMIT
END IF

esto te dará una idea. para obtener más información, el libro de O'Reilly "MySQL Stored Procedure Programming" (de donde saqué esta información) o en esta web en
http://dev.mysql.com/doc/refman/5.1/en/handler.html

Suerte.

ff

Options: ReplyQuote


Subject
Views
Written By
Posted
12683
August 29, 2006 08:56AM
4557
August 31, 2006 11:36AM
Re: Procedimientos almacenados
9138
September 01, 2006 11:46AM
3707
September 01, 2006 11:47AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.