PDA

Ver la Versión Completa : Actualizar DBGrid conectado a TADOQuery


Acker
18-05-2006, 16:56:32
Buenas tardes a tod@s!!

Tengo un problemilla, en el que espero puedan ayudarme. Os comento:

Uso Dephi 7 con MS Access.

Dispongo de un DBGrid conectado a un Data Source que a su vez se conecta con un TADOQuey (cuya consulta es extremadamente sencilla, por lo que el problema no deriva de ahi).

El TADOQuery realiza la consulta sobre una tabla, la cual modifico con Insert, o con Edit. El problema surge por que no hay manera (o al menos yo no la encuentro) de hacer que el DBGrid se actualice con los nuevos registros que genera la consulta. Las modificaciones en la tabla se hacen correctamente, y el DBGRid solo se "refresca" cuando reinicio mi aplicación.
¿Cómo puedo hacer para que el DBGrid se actualice en tiempo de ejecución?

Gracias de antemano!!

samantha jones
18-05-2006, 17:17:05
Tendrias que volver a lanzar la consulta que llena el grid una vez que insertes o actualices.

Saludos.

Acker
18-05-2006, 17:19:07
Eso lo he probado ya. Cierro la TADOQuery, y después la vuelvo a abrir, pero nada, no se actualiza el Grid.
:mad: :mad:

Por cierto, gracias por tu interés!!

Acker
18-05-2006, 17:51:44
EStoy desesperado chic@s!!!!

Necesito vuestra ayuda!

Gracias

ContraVeneno
18-05-2006, 18:35:13
¿un query.refresh no funciona?

Acker
18-05-2006, 21:19:16
NAda, el Qeury.Refresh tampoco funciona. Lo he probado también y nada de nada, luego me di cuenta que el Refresh no funciona para los TADOQuery

Acker
20-05-2006, 11:54:35
Hola de nuevo chic@s!!!

sigo sin dar con la tecla. no hay manera de que se me actualice el DBGrid.
Le ha ocurrido eso a alguien alguna vez??? si es asi os ruego que me echen una mano, estoy DESESPERADO!!!!!!!!!!!!

Un saludo y Gracias

Acker
20-05-2006, 12:31:05
Buenas noticias (al menos para mi).

He vuelto a buscar mas concienzudamente por el foro temas relacionados, y por fin di con la solucion. Parece ser que en BBDD de MS hay que darle un cierto tiempo para el refresco de sus datos. ASi que un simple delay soluciona mi problema.



sleep(5000);
DMBaseDedatos.ADOQClientesActivos.Close;
DMBaseDeDatos.ADOQClientesActivos.Open;
DMbaseDeDAtos.ADOQClientesActivos.Refresh;
FCLientes.DBGClientes.Refresh;


Espero que esto pueda servirle a otros que como yo se inician en esto de Delphi