Pues por lo pronto yo veo un error bastante común (al menos lo he visto es muchos programas).
En tu código al ocurrir una excepción, muestras el mensaje de error y después haces el rollback.
Ahora imagina al clásico usuario al cuál le dan ñañaras las computadoas:
- "ok, hoy si voy a trabajar.. vamos a ver.. crear factura.. capturar... ¡CHANGOS!, esta mugre ya marcó un error...."
Se levanta de su silla, se va a preparar un café, platica con la secretaría, luego va con el guardia a platicar de futbol y después de todo eso va con el de sistemas a reportarle el error.
Durante todo ese tiempo, como nunca le dio aceptar al error, la transacción siguió activa, bloqueando a todos los demás usuarios.
Solución: Ejecuta el RollBack primero y después muestra el error.
Como sugerencia, trataría de hacer las excepciones más específicas y no utilizar el E:Exception, si no la clase del error que estoy esperando, EDBEngine por ejemplo. Y cambiaría el mensaje por: 'Ocurrió un error al intentar guardar. ' +#13+E.ClassName+' - '+E.Message Pero es cosa personal, eso de decir "posteo" no me gusta a mi para nada...
Última edición por ContraVeneno fecha: 12-08-2008 a las 23:17:49.
|