Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-03-2012
carlo_acp carlo_acp is offline
Miembro
 
Registrado: may 2006
Posts: 26
Poder: 0
carlo_acp Va por buen camino
Refrescar registros de grid automaticamente de la BD sin intervención del usuario

Saludos amigos
Estoy trabajando en una aplicación en la que existe 1 ventana en donde se crean registros ubicada en un terminal. Existe otra ventana, que está en otro terminal, en donde se tiene que visualizar estos registros creados, la idea es que tiene que actualizarse sin intervención del usuario y que sea al momento que se crea el registro en el otro terminal.

Estuve buscando y probando de muchas maneras como hacer esto posible, pero hasta ahora solo tengo una opción que es hacer un timer y que cada "n" segundos haga un refresh del ClientDataSet y me actualice el grid, pero debería esperar el tiempo y en algunas ocasiones es mucho tiempo. Que opinan, como se puede hacer esto, gracias por sus opiniones.
Responder Con Cita
  #2  
Antiguo 30-03-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

Al timer le puedes poner el intervalo que quieras, no se porque dices que es mucho tiempo, será mucho si le programas mucho, vamos, digo yo.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #3  
Antiguo 30-03-2012
carlo_acp carlo_acp is offline
Miembro
 
Registrado: may 2006
Posts: 26
Poder: 0
carlo_acp Va por buen camino
Hola gracias por tu respuesta, bueno te explico mas, se trata de un negocio en el cual el tiempo es muy importante, pues los nuevos registros de pedidos deben llegar al instante, tendría que poner un refresh en el timer de 10 seg o 5 seg y ya te imaginas como estaría esa consulta via red, pues habrá tiempos en los cuales no habrá mucho movimiento de pedidos.
Responder Con Cita
  #4  
Antiguo 30-03-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
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
Creo que otras veces hemos comentado algo similar.
Una opción similar a la que te han comentado, pero más eficiente, es no refrescar la tabla para ver si hay pedidos nuevos (que puede ser una consulta costosa) sino utilizar una pequeña tabla (por ejemplo 1 campo y 1 registro) que te sirva de aviso para saber si tienes que refrescar la tabla real.

De esta forma las consultas casi no generan tráfico por la red (o generan mucho menos) y además no afectan a ninguna tabla importante.

Cuando exista un nuevo pedido, modificas esta tabla de aviso de forma simultánea, y al hacer la consulta sobre esta tabla y detectar que hay nuevo pedido, entonces actualizas la tabla de pedidos.

Otras opciones más complejas, podrían ser utilizar un sistema paralelo, por ejemplo con sockets para no interferir en la Base de Datos, para mandar los avisos.
__________________
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
  #5  
Antiguo 30-03-2012
carlo_acp carlo_acp is offline
Miembro
 
Registrado: may 2006
Posts: 26
Poder: 0
carlo_acp Va por buen camino
Gracias Neftali, entonces el timer haria consultas a esa tabla si hubo modificaciones y si las hubo, hace la consulta a la tabla con los registros actualizados para actualizar su grid. lo entiendo asi?
Responder Con Cita
  #6  
Antiguo 30-03-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por carlo_acp Ver Mensaje
Gracias Neftali, entonces el timer haria consultas a esa tabla si hubo modificaciones y si las hubo, hace la consulta a la tabla con los registros actualizados para actualizar su grid. lo entiendo asi?
No, no se trata de utilizar una tabla adicional. Se trata de utilizar la misma tabla de pedidos que ya tienes. Por ejemplo:
Código SQL [-]
Select count(p.id) from pedidos p where p.tomado_fecha > :ultima_fecha_vista

Si la consulta anterior te trae como resultado más de 0 -cero-, entonces refrescas por algún medio no intrusivo la tabla principal.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No muestrar registros en el Grid Paulao Varios 5 24-03-2009 20:17:42
insertar registro en un grid que esta en otro grid @-Soft SQL 7 20-02-2008 17:22:42
insertar n registros en una tabla automaticamente zcatzz SQL 2 08-02-2007 03:42:04
Parlamento europeo desestima intervención comunicaciones Casimiro Notevi Noticias 0 28-09-2005 10:01:33
Registros en un Grid JorgeBec Varios 1 02-04-2005 09:15:49


La franja horaria es GMT +2. Ahora son las 08:24:20.


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