FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Refrescar tabla o consulta en LAN
Saludos a todos, soy yo de nuevo XD.
Verán, estaba haciendo algunas pruebas con MySQL y C++Builder uso 10.3. Tengo una aplicación que corre perfectamente en PC1 por ejemplo, la misma la llevé a otra PC2, la BD está alojada en la PC1 y por ODBC desde ambas aplicaciones se conectan correctamente a la BD en PC1, están en la misma red local. Mi duda es la sgte: al utilizar la app en PC1 y por ejemplo aumentar stock de un producto, el aumento no se ve reflejado en la PC2 (por ejemplo si estoy mostrando la info en un DBGrid) y tampoco viceversa, si modifico algo desde la PC2, no se refleja en la app de la PC1. Qué debería hacer para "refrescar" esa información, ya sea tabla o consulta en la otra aplicación que está utilizando la misma aplicación en otro ordenador? He utilizado los componentes ADO para todo. Gracias de antemano a sus respuestas que me están ayudando bastante. |
#2
|
||||
|
||||
Si es un dbgrid, puedes poner el botón "refrescar", es lo más simple.
Si dejan abierto ese form con el dbgrid durante varias horas o días, por decir algo, lo normal sería refrescar para ver los datos actualizados. Con algunas BD como firebird existen los eventos que puedes controlar para estos temas, pero desconozco si con mysql es posible. También puedes añadir un timer que ejecute el refresh cada ¿una hora? Aunque todo depende de la importancia que tenga el mostrar esos datos actualizados en un dbgrid dejado abierto. |
#3
|
||||
|
||||
Cita:
Lo que comenta [Casimiro] son los "Query Notifications" que tienen algunas BBDD. Para acceder a ellos tienes un componente de FireDAC llamado TFDEventAlerter (http://docwiki.embarcadero.com/RADSt...lerts_(FireDAC)). Aunque en la documentación no aparece MySQL. O porque la BBDD no soporta las notificaciones o porque FireDAC no lo tiene implementado para MySQL.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Cita:
Nunca he utilizado los componentes de FireDAC |
#5
|
||||
|
||||
Por lo que me ha parecido entender, creo que es innecesario lo que pretendes hacer.
¿Acaso tienes en pantalla, al mismo tiempo, todos los artículos existentes, y hay alguien mirando esa pantalla para ver si aumentan o disminuyen las existencias? |
#6
|
||||
|
||||
Cita:
En CADA ocasión que vas a mostrar datos, DEBES re-consultar la BD. Es incluye si vas de un registro a otro en un flujo de edición. Asi que deberías tener un contante "Query.Open, Query.Close" cada vez que vas fluyendo. Unicamente tiene algo de sentido mantener la CONEXION abierta, o usar un pool de conexiones y en cada query abrir de nuevo la conexión. Idealmente:
Un BD remota se supone que se acceda de esta forma. Recuerda que estas dentro de una BD transaccional y las transacciones deben ser CORTAS, de solo segundos de estar abiertas. --- Y en caso de lo que dices, hacer polling no es algo que deberías preocuparte a menos que tengas CIENTOS de "escuchas" a la vez.
__________________
El malabarista. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TClientDataSet - Refrescar Parte de la Tabla | LEVV | Conexión con bases de datos | 2 | 13-04-2012 17:21:16 |
refrescar la tabla | ebeltete | Firebird e Interbase | 1 | 08-03-2008 15:58:54 |
Refrescar tabla y consulta | carlosegs11 | SQL | 11 | 08-05-2007 19:40:53 |
Actualizar o Refrescar una Tabla | Caral | Tablas planas | 2 | 20-02-2007 20:12:17 |
Refrescar consulta | negama | SQL | 2 | 05-09-2003 15:45:39 |
|