me imagino que el KeyViolation se da si el usuario graba en la tabla detalle. En el evento BeforePost de esta tabla, verificá si la tabla maestra esta en modo de inserción y hace post primero en ella, si no, el registro maestro no existe en la BD, con lo que te dispara un error la integridad referencial.
Hasta luego.
