Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-06-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
ejecutar codigo de delphi cada 24 horas

buenos dias compañeros tengo una duda y no encuentro como atacarla, estamos por terminar una aplicacion que controla la funcionalidad de un hotel, en diho sistema existe un proceso que es llamado night audit, el cual una persona a la media noche tiene que ira presionar un boton para que cargue las noches y consumos de itinerario que halla tenido el huesped durante el dia, tambien corre procesos que hacen interfax con un pbx, y un punto de restaurant llamado aldelo, pero ahora nos pide el cliente que dicho proceso se ejecute automaticamente, inicialmente los dodigos los mande a procedimientos almacenados los cuales puedo controlar la hora en que quiero que se ejecuten pero las interfaces pbx, aldelo extraigo datos de otras bases de datos por lo cual un procedimiento almacenado no me sirve, he estado viendo el timer de delphi pero ese componente no me resuelve el problema o al menos no he encontrado la forma de utilizarlo, la pregunta es existe la posibilidad de especificarle a delphi que corra dicho codigo diario a las 12 de la noche gracias por cualquier comentario.
Responder Con Cita
  #2  
Antiguo 04-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes hacerlo de varias formas, con timers o sin ellos, por ejemplo con decodetime, échale un vistazo a esa función.
Responder Con Cita
  #3  
Antiguo 04-06-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
gracias casimiro voy a buscar info sobre este comando
Responder Con Cita
  #4  
Antiguo 04-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira este hilo.
Responder Con Cita
  #5  
Antiguo 04-06-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
gracias casimiro ya tengo un timer en mi aplicacion que me muestra la hora y fecha en el sistema pero este timer lo tengo que se este actualizando cada segundo ahora lo que pretendo hacer es que este leyendo una tabla de mi base de datos no resultaria esto muy costoso para la aplicacion? anexo el codigo
Código Delphi [-]
procedure TFrm_Menu.RelojTimer(Sender: TObject);
var d,m,a:Word;
mes,dia:String;
begin
Decodedate(now,a,m,d);
case m of
 1 :mes:='January' ;
 2 :mes:='February' ;
 3 :mes:='March' ;
 4 :mes:='April' ;
 5 :mes:='May' ;
 6 :mes:='June' ;
 7 :mes:='July' ;
 8 :mes:='August' ;
 9 :mes:='September' ;
 10 :mes:='October' ;
 11 :mes:='November' ;
 12 :mes:='December' ;
end;

case DayOfWeek(now) of
 1 :dia:='Sunday' ;
 2 :dia:='Monday' ;
 3 :dia:='Tuesday' ;
 4 :dia:='Wednesday' ;
 5 :dia:='Thursday' ;
 6 :dia:='Friday' ;
 7 :dia:='Saturday' ;
end;
stb_panel.Panels[0].Text:=Application.Hint;
stb_panel.Panels[1].Text:='Date:  '+dia+', '+IntToStr(d)+' of '+mes+' of '+IntToStr(a);
stb_panel.Panels[2].Text:='Time:  '+TimeToStr(Time);
//pretendo hacer algo asi
Qry_ultimacorrida.close;
qry_ultimacorrida.open;
MyDate := EncodeDate(a,m,d);
if Qry_ultimacorrida.fieldbyname('fecha').asdatetime>=muydate then
begin
//desencadena proceso
end;
end;
Responder Con Cita
  #6  
Antiguo 05-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero si sólo quieres que se ejecute a una hora determinada, entonces te sobra bastante de ese código, quedaría algo así como:

Código Delphi [-]
private
  var
    bProcesado : boolean;  <- poner a false en el oncreate o en onshow 

...
...
...

procedure TFrm_Menu.RelojTimer(Sender: TObject);
var
  ho,mi,se,mm : Word;
  bProcesado : boolean;
begin
  bProcesado := false;
  Decodetime(now, ho,mi,se,mm);
  if (ho=0) and (mi=0) and (se=0) and (not bProcesado) then
    HacerLoqueTengasQueHacer();
end;


procedure HacerLoQueTengasQueHacer();
begin
  loquesea;
  otracosa;
  //
  bProcesado := true;
end;

La variable bProcesado sirve por si tarda más de un segundo en HacerLoQueTengasQueHacer que no lo vuelva a ejecutar.
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
como ejecutar codigo html en delphi? (MAJ) Internet 4 22-07-2008 19:27:41
Ejecutar tarea cada 2 minutos firecode Varios 4 25-05-2007 12:37:32
Ejecutar codigo de dos dentro de Programa Delphi JELIRM Varios 15 06-02-2007 22:38:11
ejecutar aplicación cada hora valera Varios 8 07-05-2005 17:11:59
Ejecutar aplicacion delphi cada cierto tiempo mgaray API de Windows 9 28-01-2005 19:16:20


La franja horaria es GMT +2. Ahora son las 16:10:18.


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