Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Actualizar las tablas solo cuando han cambiado (https://www.clubdelphi.com/foros/showthread.php?t=33079)

JULIPO 27-06-2006 03:10:59

Actualizar las tablas solo cuando han cambiado
 
Estoy desarrollando en delphi 7 con Mysql y zeos tengo una aplicacion cliente servidor las tablas son creadas en el servidor pero los clientes las modifican quiero que cuando un cliente modifique la tabla el servidor actualice un dbgrid, en este momento lo que hago es realizar periodicamente un refresh pero tiene el inconveniente de que cuando lo hace pasa al primer registro y si se esta navegando por el dbgrid se hace molesto volver a posicionarse.

gracias por su ayuda de antemano

julipo

AFilth 27-06-2006 10:24:12

A mi me pasaba algo parecido en una aplicación TPV q desarrollé. La solución q implementé fue la sgte:

1. Antes de actualizar la query, guarda la clave del registro en el cual estás posicionado.

2. Actualiza la query.

3. Haz un locate de la clave y así conseguirás q te vuelva al punto en el q estaba el usuario.

Un saludo y espero q te sirva de ayuda.

Lepe 27-06-2006 12:13:04

No sé si esto sirve para MySQL, Al menos en Firebird si va.

Los Zeos creo que ya tienen el Event Alerter (CREATE EVENT "NuevoCliente"), simplemente en el servidor añade un trigger afterPost, que diga POST_EVENT "NuevoCliente"

Ahora en cada ventana que quieres que se actualices, añades un Event Manager (creo que así se llama el componente), registras ese evento, y en el evento de ese componente, añades el código que te han comentado.

Así solo refrescas los datos cuando es necesario.

Saludos

kuan-yiu 27-06-2006 12:18:56

En MySql no sé, pero si estás utilizando el componente TQuery puedes hacerlo así:
Código Delphi [-]
var
  marca: TBookMark;
Código Delphi [-]
  marca := miQuery.getbookmark;
{
Refresco o lo que sea que tengas que hacer
}
  miQuery.GotoBookmark(marca);
  miQuery.freebookmark(marca);

kayetano 27-06-2006 12:36:56

Hola

Las "bookmarks" no se llevan muy bien con la inserción y eliminación de registros.

kuan-yiu 27-06-2006 12:45:14

Cita:

Empezado por kayetano
Hola

Las "bookmarks" no se llevan muy bien con la inserción y eliminación de registros.

Cierto, cierto. Tal vez he entendido mal el mensaje inicial, jejeje... pensé que sólo iba a tener "updates".


La franja horaria es GMT +2. Ahora son las 14:07:41.

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