Ver Mensaje Individual
  #4  
Antiguo 22-10-2021
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Reputación: 14
engranaje Va por buen camino
No tengo claro si necesitas hacerlo de esa forma concreta por algún motivo. Yo entiendo del enunciado que quieres ejecutar un código cada 2 horas. Leyendo el código y como quieres hacerlo dentro de un bucle y ya sabemos lo que pasa con los bucles infinitos se trata de ejecutar una sentencia cada dos horas mientras no se cumpla con una condición de ruptura. De tu código deduzco que esa condición de ruptura es debe <= hay.


Código Delphi [-]
 while debe <= hay do // debe inicia en 0 hay es la cantidad total de datos a leer
 begin
    //2 (horas) * 3600 (segundos/hora) * 1000 (milisegundos en un segundo)  =7200000 (milisegundos a "dormir" la ejecución.
    sleep(7200000); 
    recorre; // este es el código que debiera ejecutarse cada 2 horas
 end;


A mí también me parece mejor utilizar un ttimer para este tipo de cosas. De todas formas si necesitas la hora del servidor, consultar horas en bd y realmente lo que necesitas es una diferencia entre horas este sistema supongo que no te servirá. Como siempre, espero que recorre se encargue de incrementar debe hasta que iguale o supere el valor de hay en algún momento.
Responder Con Cita