Informix - Control de Errores

 
Vista:

Control de Errores

Publicado por OSK (2 intervenciones) el 16/03/2008 15:51:46
Buenos días,

Cada vez que corro un SP, éste, elimina las tablas temporales que existan, la pregunta es la siguiente:

Si yo elimino una tabla que no existe, me dá un error, justamente lo que necesito hacer, es atrapar ese error.

Intente hacerlo de la siguiente forma:

DROP TABLE NOMBRE_TABLA;

ON EXCEPTION ESQL

IF ESQL = 206 THEN -- error de que no esta esa tabla en la base
CONTINUE;
ELSE
RETURN;
END IF;

END EXCEPTION;

Esto me da un error sintáctico que no tengo idea de que es, porque me hace borrar todo el exception para que no me dé mas error.

Agradezco su ayuda,

Salu2 a to2,

Osk.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Control de Errores

Publicado por OSK (6 intervenciones) el 19/03/2008 13:17:33
Sigo respondiendo mis propias preguntas...

Para controlar los errores, probe de poner una exception al principio de todo y evaluar segun el error que haya encontrado a lo largo del programa.

Create procedure....
.
.
on exception set esql
if esql <>-206 then
return sql;
end if;
end exception
.
.
drop table tabla1;
.
.
.

end procedure;

Cuando intente borrar la tabla, si esta no existe, va a dar un error por esta causa, el código númerico es el -206, en este caso como la condicion es para todo error distinto de -206, continua hasta encontrar le proximo return o finalizacion del programa, ya que no lo capturo en este bloque.

Puedo evaluar cualquier codigo de error, yo para le ejemplo solo puse ese.
Espero sirva,
Saludos,
Osk
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Control de Errores

Publicado por Ero (1 intervención) el 06/11/2008 21:00:17
Mejor tarde que nunca....
DEFINE okey SMALLINT;
DEFINE err_num INTEGER;
LET okey = 0;
BEGIN
ON EXCEPTION IN (-206) SET err_num
IF err_num = -206 THEN
LET okey = 1;
END IF
END EXCEPTION WITH resume
DROP TABLE tabla_temporal;

END

codigo del SP....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar