Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DBgrid que se actualize solo en varios puestos.? (https://www.clubdelphi.com/foros/showthread.php?t=65373)

fragers 10-12-2009 00:46:02

DBgrid que se actualize solo en varios puestos.?
 
Hacia mucho tiempo que no programaba nada, me ha surgido la necesidad de una secilla BD en red, y necesito que cuando alguien modifique un registro se actualize automaticamente en pantalla de todos los terminales, en d5 creo recordar que habia un componente de las torrys "tdbgrid" que lo hacia solo, pero ahora tengo la version de prueba de delphi9 y no he sido capas de instalar la version ultima que econtre de las torrys para d6, de que otra forma se puede hacer esto???? habia pesando en un timer activando y desactivando el dataset y controlando que no salte cuando estan editando pero imagino habra formas mas elegantes...

Perdon por el tocho..
Gracias.

Aleca 10-12-2009 01:51:57

en vez de activar/desactivar podes hacer el refresh del dataset
:)

jhonny 10-12-2009 02:10:28

Si estas utilizando Interbase o Firebird... podrias hacer uso del Event_post.

Neftali [Germán.Estévez] 10-12-2009 10:56:18

Cita:

Empezado por fragers (Mensaje 348567)
...habia pesando en un timer activando y desactivando el dataset y controlando que no salte cuando estan editando pero imagino habra formas mas elegantes...

No mucho más elegantes, no creas...
Si el motor de Base de Datos no provee eventos como en el caso que te han comentado hay pocas opciones más.

Una posible optimización puede ser la de no consultar directamente la tabla (TablaA) cada vez (máxime si es mediana o grande), sino utilizar una tabla (pequeña) donde se guarden las actualizaciones (TablaB).

Cuando actualizas la TablaA, colocas una marca en la TablaB. Utilizando el Timer consultas periódicamente la TablaB y sólo actualizas la tablaA cuando es necesario.
  • La TablaB se supone que es pequeña, por lo tanto las consultas son mucho más rápidas.
  • Evitas estar refrescando continuamente la tabla real de trabajo (TablaA) y además disminuyes tráfico de red.
En algunos casos concretos este modelo puede no salir a cuenta, dependiendo del número de consultas, del número y asiduidad de los cambios en la tablaA,... Eso habrá que verlo con tu caso concreto.

fragers 10-12-2009 17:22:07

Ante todo gracias por vuestras respuetas:
Activando y desactivando es la unica manera que funciona, pero tengo que controlar que no actualize cuando estan editando el dbgrid, lo malo es que si se dejan el dbgrid en modo edicion no se actualiza hasta que se salen, la tabla es muy pequeña solo un cuadrante de citas la he hecho en paradox, pero vamos he estado trasteando un poquito en firebird y me gustaria aprender, como se haria con una tabla en firebird?


La franja horaria es GMT +2. Ahora son las 19:59:16.

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