Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2005
manuel Suarez manuel Suarez is offline
Registrado
 
Registrado: jun 2005
Posts: 5
Poder: 0
manuel Suarez Va por buen camino
Actualizar automaticamente los datos en SQL Server

Hola.

Resulta que estoy trabajando con delphi 7 y SQL Server 2000, utilizo ADOs para la conexion, es una aplicacion cliente servidor de multiples usuarios conectados en red.

Muestro la informacion de las tablas en listviews, pero quisera saber como le puedo hacer para que la informacion se actiualice automaticamente, es decir, que cuando un usuario modifique la informacion de algun registro, ésta se actualice en los listview de los demas usuarios conectados, para que trabajen con la información actualizada y no con informacion falsa...

Se me estaba ocurriendo hacerlo con un timer, que cada cierto tiempo realizara la consulta de nuevo de todas las tablas, pero creo que eso no es lo correcto, porque consumiria mucho trafico en la red.. si alguien sabe de algun metodo para resolver este problema se lo agradecería muchisimo.

Saludos...
Responder Con Cita
  #2  
Antiguo 07-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.273
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por manuel Suarez
...Muestro la informacion de las tablas en listviews, pero quisera saber como le puedo hacer para que la informacion se actiualice automaticamente...
No acabo de entender porque haces eso (lo de mostrar la información en ListViews), teniendo DBGrids que son específicos para ello, de todas formas esa no es la pregunta, no?
Una alternativa a la que comentas (del timer) y que minimiza el tráfico de red es tener una tabla de actualizaciones (TABLA_S), es decir, una tabla en la que guardas:
(1) Nombre de la tabla
(2) Hora de la última actualización.
(en ésta tabla existirá un registro por cada tabla de tu aplicación).

En cada aplicación además debes tener ésta tabla replicada (por ejemplo al entrar la cargas en memoria), TABLA_L.

Cuando alguien añade/borra/modifica a una tabla un registro, además actualiza ésta con la hora (hh:mm:ss:zzzz) de la actualización.
El resto, con el Timer lo que hacen es comprobar si el valor (hh:mm:ss:zzzz) en la tabla TABLA_S y el de la TABLA_L para un nombre de tabla es el mismo. Si es diferente debes releer los datos.

Minimiza el tráfico de red, ya que cada x tiempo sólo lees un registro de la TABLA_S (con dos campos) y sólo actualizas la tabla en cuestión cuando ha habido cambios.

Personalmente no me acaba de convencer, pero, como mínimo es una mejora...
__________________
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:17:30.


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
Copyright 1996-2007 Club Delphi