Ya uso transacciones para aislarlo todo, pero ¿porque me indica que está bloqueado si realizo un query dentro del evento?
Por otra parte, la técnica que uso es para obtener un código 'tentantivo'. Cuando guardo intercepto la excepción correspondiente y genero un nuevo código si se produce, indicándole al usuario lo que ha ocurrido y que tan sólo debe volver a intentarlo con ese nuevo código. Tu solución también le daría un error, indicando que la tabla está bloqueada.
|