PDA

Ver la Versión Completa : Controlar el dbnavigator


gesjug
05-02-2008, 10:52:54
Veran, lo que ocurre es que yo tengo unos campos asociados a una bd mysql mediante el datasource y un dbnavigator para moverme por los registros.
El problema es que si cambio algo en algun campo y cambio de registro, me guarda el cambio... Yo quiero controlarlo y que no guarde al moverme si no solo cuando le de a guardar.
Eso seria lo ideal.
Si no puede ser, pues aunque sea que no me deje moverme de registro si no guardo o cancelo.

Muchas gracias

Caral
05-02-2008, 14:21:13
Hola
El BDNavigator tiene las opciones en sus propiedades, lo que puedes hacer es quitarle las opciones Post y Refrech y colocar un boton para tal efecto, otra manera es manejar el post desde el componente Table.
Saludos

keyboy
05-02-2008, 16:43:38
El problema es que si cambio algo en algun campo y cambio de registro, me guarda el cambio...

Éste es el comportamiento normal en un dataset: cuando cambias de registro se hace automáticamente el post, independientemente de que uses un dbnavigator o no.

Con algunas componentes, como las del BDE o MyDAC, puedes activar la opción CachedUpdates que te permite guardar en memoria los cambios (inserciones, borrados o cambios) hasta que explícitamente usas ApplyUpdates para guardar los cambios o CancelUpdates para cancelarlos.

Si los componentes que usas no tienen una funcionalidad similar, puedes aún usar un DatasetProvider y un ClientDataSet conectados a tu Dataset, para lograr el mismo efecto.

Bye

egostar
05-02-2008, 17:29:46
También puedes usar el evento BeforeAction del DBNavigator y decidir que hacer antes de que se ejecute por ejemplo el Post lo cambias por Cancel.

Salud OS

keyboy
05-02-2008, 18:26:55
Creo que hay aquí una confusión. Cuando nos movemos de registro, se realiza en automático un post. Este post lo hace el dataset, no el dbnavigator, de manera que no hay forma de interceptarlo en el BeforeAction. En este evento podríamos detectar cuando el usuario oprime el botón nbPost y cancelarlo pero no podemos evitar el post que se hace al movernos de registro, a menos que cancelemos el movimiento en sí, pero, en tal caso, no veo para qué querríamos usar un dbnavigator.

Bye