![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
En cuanto a lo del "pooling" la explicación a sido buena, aunque no sé cómo hacerlo, si no es mucho pedir podrías enviarme algún enlace donde se explique como implementarlo. Realmente me interesa!!
|
|
#2
|
||||
|
||||
|
Cita:
El "pooling" no es más que lo que ha comentado [Casimiro]. Ir preguntando periódicamente por el estado de algo para saber si ha sufrido cambios (en este caso los cambios en la tabla). La implementación con un Timer o con un thread separado. Lo que si considero importante es, que si la tabla de la que quieres refrescar el Grid es muy grande, no pregunte directamente a la tabla (refrescando el grid), sino que lo hagas con una tabla secundaria (pequeña y de acceso rápido). Por ejemplo, si tienes una tabla de OPERACIONES que visualizas en un grid y quieres mantenerla actualizada, pero es grande, te creas una segunda tabla pequeña con esta estructura: HAY_CAMBIOS_OPERACIONES ------------------------------------- ID; Autonumerico;NOT NULL ULTIMOCAMBIO; FechaHora; NOT NULL 1) Cuando hay un cambio en la tabla de operaciones, haces un INSERT en la tabla HAY_CAMBIOS_OPERACIONES 2) El pooling o el Timer hace la consulta sobre la tabla HAY_CAMBIOS_OPERACIONES, en lugar de sobre la tabla de OPERACIONES (esto sale a cuenta si la tabla de OPERACIONES es pesada/grande y las consultas costosas) a) Si la tabla HAY_CAMBIOS_OPERACIONES tiene registro, actualizas el GRID y borras ese registro b) Si la tabla HAY_CAMBIOS_OPERACIONES NO tiene registros es que no habido cambios y no hay que hacer nada más. Lo dicho, esta tabla HAY_CAMBIOS_OPERACIONES sale a cuenta mantenerla si la tabla OPERACIONES es grande y no quieres estar continuamente generando esas consultas costosas. Si la taba original (OPERACIONES) es pequeña o la consulta se hace con filtros y no es costosa, esta técnica de usar una segunda tabla no es necesaria. Esta es la idea simple, hay variantes, como que la tabla HAY_CAMBIOS_OPERACIONES, sea más genérica y te pueda servir para más tablas. En este caso el TimeStamp no haría falta estrictamente, sólo que exista registro, etc, etc, etc,... (el ejemplo es simple y rápido para explicar la idea, no es una implementación final). Espero que la idea se haya entendido.
__________________
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. |
|
#3
|
|||
|
|||
|
muchas gracias por sus respuestas, gracias a ustedes por ayudarme en mi problema. también queria comentarles que había pensado en solucionar el problema usando sendmessage para enviar un mensaje desde el programa 1 al programa 2, pero no pude ya que el programa 1 es un servicio de windows y no me funciona findWindow para poder saber cual es el handle del programa 2
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| MSACCESS WHERE con LIKE y Delphi7 con ADO | saldanaluis | Conexión con bases de datos | 2 | 11-11-2010 05:58:55 |
| Notificación de Cambios | marcial | Firebird e Interbase | 8 | 18-11-2008 20:58:02 |
| Tumbar msaccess | Luis F. Orjuela | Conexión con bases de datos | 1 | 05-04-2007 11:05:19 |
| MSAccess o SQL Server | Cabanyaler | Conexión con bases de datos | 3 | 17-08-2005 14:55:04 |
| objeto ole MSACCESS | veronica | Gráficos | 1 | 19-11-2004 16:07:22 |
|