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)
-   -   actualizar campos (https://www.clubdelphi.com/foros/showthread.php?t=6605)

vetustas 14-01-2004 17:49:04

actualizar campos
 
Trabajo con delphi 5 y Paradox. Cómo hago para que cada vez que visualice una tabla los datos esten actualizados? es decir, tengo un dbgrid asociado a un data source que a su vez esta asociado a un query. Si muestro el dbgrid y luego modifico uno de sus campos cómo hago para que cuando vuelva a mostrar el dbgrid el dato haya cambiado?
me explico con un ejemplo mejor
tengo un dbgrid asociado a un datasource "dsqryalumnos". uno de los campos que se muestra es si el alumno esta o no inscrito en una practica. si luego yo modifico dicho campo (es decir, inscribo al alumno en una practica) me gustaria que cuando mostrase de nuevo el dbgrid, el campo inscrito de dicho alumno hubiera cambiado automaticamente.
Cómohago?
gracias

marcoszorrilla 14-01-2004 19:23:15

Lo primero tienes que asegurarte que el dato se grabe, es decir al pulsar el botón que corresponda:

MiTabla.Post;
y en el evento AfterPost, del Ttable:
MiTabla.FlushBuffers;

Con esto trabajando monousuario es suficiente, otra cosa es que tengas formularios MDI y dejando la rejilla abierta sobre los datos puedas ir a otro formulario y hacer un cambio.

En este caso nos pasaría algo similar al trabajo en red, para asegurarnos que estamos leyendo unos datos actualizados, tendríamos que hacer un "Refresh", sobre la tabla o Query.
Se puede poner un botón para que el usuario refresque cuando quiera, de hecho el DbNavigator, ya trae uno.

Se puede colocar un Timer que provoque un refresco cada cierto tiempo...

Un Saludo.
ç

vetustas 14-01-2004 20:35:40

Mmm...no me funciona. A lo mejor no me explique bien. A ver, yo tengo un grid donde tengo los datos de los alumnos. Pero para ver los datos de los alumnos de un curso en concreto tengo que pulsar un boton que lo que hace es llamar al query que dije antes. El caso es que cuando modifico uno de los campos y vuelvo a mostrar el listado, pues los datos no han cambiado. Eso si, en cuanto le doy al boton ese que os digo que llama al query, entonces si, el dato ha cambiado. Estoy pensando que a lo mejor lo que tengo que refrescar es el grid....eso es posible?
gracias

marcoszorrilla 14-01-2004 21:59:53

Cita:

tengo un dbgrid asociado a un datasource "dsqryalumnos".
Bueno ahora lo veo más claro, según parece la rejilla la tienes conectada una consulta, en Paradox no existe la instrucción "Requery", por lo que el refresco es tan simple como volver a armar la consulta, puedes utilizar el evento OnChange del campo que modificas y cada vez que esto ocurra, cierras la consulta y la vuelves a activar de nuevo.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 02:02:57.

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