|
No graba porque no haces un post de tu tabla.
Cuando te mueves a otro registro, el post es automatico, y por eso se graba.
Si te fijas, en el indicador del grid veras como cuando te mueves a otro registro cambia al "triangulito", mientras que si no te mueves el indicador queda en modo edición.
Pulsar ENTER no significa que hagas un post de la tabla (salvo que captures la pulsación y hagas tu mismo el post), y lo mismo sucede si haces click en otro componente. La tabla se queda en modo de EDICION hasta que tu hagas el POST (o CANCEL).
Se ve facil si incluyes un DBNavigator, el cual tiene un boton para Aceptar (POST) o Cancelar (CANCEL).
Es importante que CONTROLES cuando se entra y se sale del modo de edición, obligando a pulsar los botones correspondientes.
Aunque tambien puedes poner el post en los eventos del dbgrid (onexit por ejemplo) y realizar una accion por defecto, o preguntar si se quieren guardar los cambios.
Yo, personalmente, no suelo permitir que se edite directamente sobre los dbgrid. Da más trabajo, pero tambien controlo todo el proceso.
Sobre el tema DBAware vs non-DBAware hay mucho escrito.
|