Es posible que el comportamiento que describes sea el normal (o casi). Un error como el de llave duplicada se genera cuando se intenta hacer el 'post' del registro que se está editando, sea porque lo haces explícitamente o por que te mueves de registro.
Cuando este error aparece, el 'foco' regresa al registro problemático y volverá a surgir cada vez que intentes moverte de registro mientras no corrijas la situación, lo cual es normal. Una vez que cambias el valor o cancelas la edición puedes continuar trabajando.
Por ello se me hacer raro que tengas que salirte del sistema. Quizá es simplemente que no has corregido el problema.
No mencionas con qué componentes trabajas pero creo recordar que usas las componentes MyDac. En tal caso, yo acabo de hacer una prueba con la versión 3.50 de las componentes y el comportamiento es el esperado.
Ahora bien, recuerda que puedes controlar dicho error con el evento OnPostError del dataset (en este caso MyTable) mostrando un mensaje personalizado y poniendo el parámetro Action en daAbort. De cualquier manera la situación es la misma, no podrás moverte mientras no corrijas el valor o canceles la edición. Sin embargo podrías usar este evento para restaurar el valor original del campo o ponerlo en blanco.
// Saludos
|