Excepciones
Publicado por Alejandro Lopez (17 intervenciones) el 30/07/2009 16:10:55
Hola que tal:
Estoy desarrollando una aplicacion de una biblioteca en la cual, obviamente, no puedo dar de baja a algun usuario si tiene libros pendientes de entregar.
En terminos de base de datos esto es, las tablas tienen integridad regerencial para que no me permita hacer eso.
Mi dude es:
Que es mejor para capturar los errores de ese tipo:
1. Al momento de presionar el boton de eliminar , primero ejecutar un proceso que busque en la bd que el usuario no tenga libros registrados. Si no tiene entonces lo eliminio ejecutando el query correspondiente. Pero si si tiene , no eliminarlo y notificarlo.
2. Ejecutar el query DELETE sin verificar si tiene libros pendientes. Si tuviera libros pendientes entonces con una tyr catch capturar el mensje de error.
try
{
Intenta eliminar
}
catch (IfException ex)
{
if (ex.Message == "ERROR [23000] [Informix .NET provider][Informix]Key value for constraint (informix.u774_433719) is still being referenced.") //Error por integridad referencial
{ No ejecuta el query y manda mensaje notificando}
}
Cual es la mejor forma de manejar estas situaciones y por que?
Gracias
Estoy desarrollando una aplicacion de una biblioteca en la cual, obviamente, no puedo dar de baja a algun usuario si tiene libros pendientes de entregar.
En terminos de base de datos esto es, las tablas tienen integridad regerencial para que no me permita hacer eso.
Mi dude es:
Que es mejor para capturar los errores de ese tipo:
1. Al momento de presionar el boton de eliminar , primero ejecutar un proceso que busque en la bd que el usuario no tenga libros registrados. Si no tiene entonces lo eliminio ejecutando el query correspondiente. Pero si si tiene , no eliminarlo y notificarlo.
2. Ejecutar el query DELETE sin verificar si tiene libros pendientes. Si tuviera libros pendientes entonces con una tyr catch capturar el mensje de error.
try
{
Intenta eliminar
}
catch (IfException ex)
{
if (ex.Message == "ERROR [23000] [Informix .NET provider][Informix]Key value for constraint (informix.u774_433719) is still being referenced.") //Error por integridad referencial
{ No ejecuta el query y manda mensaje notificando}
}
Cual es la mejor forma de manejar estas situaciones y por que?
Gracias
Valora esta pregunta
0