Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Controlar el dbnavigator (https://www.clubdelphi.com/foros/showthread.php?t=52936)

gesjug 05-02-2008 10:52:54

Controlar el dbnavigator
 
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

Cita:

Empezado por gesjug (Mensaje 263476)
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


La franja horaria es GMT +2. Ahora son las 13:20:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi