Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-12-2006
Avatar de vaporlalibre
vaporlalibre vaporlalibre is offline
Registrado
 
Registrado: nov 2006
Posts: 8
Poder: 0
vaporlalibre Va por buen camino
Question Ayuda con una consulta continua

Que tal buenas noches, necesito ayuda por favor, mi problema es que hice una agenda como parte de un sistema, en la cual escribi una parte donde introducia una fecha y una hora cualquiera en una base de datos (mysql) por medio de la aplicación, y en un timer la consulta sql que comparaba segundo a segundo si la hora del sistema (en la aplicación la puse en un label conectado a un timer), correspondia a la hora y fecha guardada en la tabla. Al hacer esto me garantizaba una consulta continua asi al llegar la hora señalada me arrojaba un mensaje, avisandome de la tarea pendiente.

Sin embargo segundo a segundo mi cursor cambia por un cursor con simbolo de Sql con el reloj de arena, esto cada segundo que se realiza la consulta SQL y esto pone lento mi aplicación ademas de que se ve anti-estetico, pues en una consulta normal pasa rapido y se ve de vez en cuando, pero asi de esta forma se ve cada segundo.

¿Como podria mejorar esta situación?, les agradecere su respuesta.
Responder Con Cita
  #2  
Antiguo 04-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué componentes estás usando? En dbExpress, la componente SQLConnection tiene la propiedad booleana SQLHourGlass para controlar eso. Eso sí, no me parece lógico que eso sólo sea lo que esté alentando la aplicación.

// Saludos
Responder Con Cita
  #3  
Antiguo 04-12-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Cita:
Empezado por roman
Eso sí, no me parece lógico que eso sólo sea lo que esté alentando la aplicación.
Pues a mí, si. Cada segundo está chequeando en la base de datos en busca de avisos pendientes. A mí lo que no me parece lógico, es estar cada segundo haciendo consultas al servidor por eso.

Imaginate que este programa lo tiene 100 usuarios en una empresa mediana, habría 100 consultas de ese programa que está en marcha todo el tiempo sobre el servidor, además de las que se estén haciendo por otro proceso.
Vale que el servidor puede estar preparado y no debería haber problemas, y me estoy yendo por los cerros de úbeda.
Lo que yo quiero decir, es que para un tema como el de avisos, tipo alarma o agenda, no me parace, a mi, la mejor opción la de estar chequeando cada segundo en la base de datos si hay avisos pendiente.

Yo apostaría por tener esa lista en memoria, o en su defecto en un fichero temporal. Por ejemplo, al arrancar la aplicación, que cargue de la base de datos en un fichero, los avisos pendientes para hoy, si se genera algún aviso para hoy, se cargará en el fichero.
Luego que el programa chequee, cada minuto, como minimo, ese fichero y chequee los avisos y los trate según convega.
No sé alomejor tengo una concepción mala, pero para este tipo de avisos (información breve y puntual) prefiero tenerla en memoria o en un fichero de fácil acceso.

No sé, ¿qué opinan ustedes?

Saludos
Responder Con Cita
  #4  
Antiguo 04-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Bicho
Pues a mí, si.
Me refería al cambio de cursor.

// Saludos
Responder Con Cita
  #5  
Antiguo 04-12-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Sorry lo entendí mal.
Y estoy contigo, no debería ser motivo para el relentizado de la aplicación.

Saludos
Responder Con Cita
  #6  
Antiguo 05-12-2006
Avatar de vaporlalibre
vaporlalibre vaporlalibre is offline
Registrado
 
Registrado: nov 2006
Posts: 8
Poder: 0
vaporlalibre Va por buen camino
Cita:
Empezado por Bicho
Pues a mí, si. Cada segundo está chequeando en la base de datos en busca de avisos pendientes. A mí lo que no me parece lógico, es estar cada segundo haciendo consultas al servidor por eso.

Imaginate que este programa lo tiene 100 usuarios en una empresa mediana, habría 100 consultas de ese programa que está en marcha todo el tiempo sobre el servidor, además de las que se estén haciendo por otro proceso.
Vale que el servidor puede estar preparado y no debería haber problemas, y me estoy yendo por los cerros de úbeda.
Lo que yo quiero decir, es que para un tema como el de avisos, tipo alarma o agenda, no me parace, a mi, la mejor opción la de estar chequeando cada segundo en la base de datos si hay avisos pendiente.

Yo apostaría por tener esa lista en memoria, o en su defecto en un fichero temporal. Por ejemplo, al arrancar la aplicación, que cargue de la base de datos en un fichero, los avisos pendientes para hoy, si se genera algún aviso para hoy, se cargará en el fichero.
Luego que el programa chequee, cada minuto, como minimo, ese fichero y chequee los avisos y los trate según convega.
No sé alomejor tengo una concepción mala, pero para este tipo de avisos (información breve y puntual) prefiero tenerla en memoria o en un fichero de fácil acceso.

No sé, ¿qué opinan ustedes?

Saludos
Eso suena bien, peroexactamente como haria eso, asi ya no cargaria desde el servidor, si no desde memoria local.
Responder Con Cita
  #7  
Antiguo 05-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé yo que tan malo sea estar consultando al servidor. Verás, yo tengo un sistemita, claro que con pocos usuarios, no más de diez simultáneos, en donde cada cliente debe "avisar" al servidor cada tanto que aún sigue vivo. Esto lo hago cada 30 segundos y no he tenido ningún problema en tres años que ha corrido.

Es que un segundo es un exceso pero normalmente, si una tarea tiene un retraso de 30 segundos nadie se va a morir. Así que podrías también intentar esa opción. Ya si no mejora pruebas otra cosa.

// Saludos
Responder Con Cita
  #8  
Antiguo 05-12-2006
Avatar de vaporlalibre
vaporlalibre vaporlalibre is offline
Registrado
 
Registrado: nov 2006
Posts: 8
Poder: 0
vaporlalibre Va por buen camino
Smile

Me gustaria realizar esta consulta cada 5 minutos por lo menos, pero no se como, si alguien pudiera por favor, poner aqui un codigo delphi, donde cada 5 minutos me mande un mensaje, ya yo sustituiria ese mensaje por mi codigo de consulta. Por favor lo agradeceria mucho.

P.D. Utilizo Delphi7
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
Lectura continua de Archivo friendspark API de Windows 2 02-02-2006 16:27:52
Mendocino: continúa la dupla SAP-Microsoft marcoszorrilla Noticias 0 28-04-2005 22:18:05
Reproduccion continua de un video avi alexmucho C++ Builder 1 09-09-2004 11:58:21
Impresion continua de los campos de una tabla? tayra Impresión 11 03-06-2004 21:15:41
el problema continua! merlin Impresión 1 15-01-2004 15:01:18


La franja horaria es GMT +2. Ahora son las 22:53:42.


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