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 24-02-2021
juggern juggern is offline
Miembro
 
Registrado: jun 2020
Posts: 79
Poder: 4
juggern Va por buen camino
Problemas lanzando el ejecutable desde tarea programada

Buenos días chicos,

Os traigo otro problemilla de estos raros que me pasan.

Verán, tengo una aplicación que se puede ejecutar normal o lanzarla desde tarea programada para que lo haga todos los días a cierta hora.
Lo tengo en muchos clientes y en todos funciona, salvo en uno, que de repente ha empezado a no funcionar a medias.
Verán, cuando arranco yo el programa y lanzo el proceso desde un botón que tengo, funciona bien, pero cuando lo lanza la tarea programada, no funciona bien.

El fallo principal, es que coge una fecha guardada en un .ini. Cuando lo lanzo desde el botón, coge bien esa fecha, pero cuando lo lanza la tarea programada, no me reconoce la fecha y me guarda la fecha mínima de sql.
La tarea tira del mismo ejecutable y del mismo .ini, lo he comprobado.
Para leer esta fecha hago lo siguiente:
Código Delphi [-]
fecha:= oArchivo.ReadDateTime('FECHA', 'UltimaFecha', 31/12/2000);

Como os comento, esto me funciona en todos los clientes, incluso en este llevaba funcionando un año hasta que ha empezado a pasar esto.

Dándole vueltas a alternativas, he probado a guardar la fecha como string y luego pasarla a fecha. De esta manera, el string me lo guarda bien, pero a la hora de pasarlo a Date, el programa se para.
De nuevo es muy raro, porque si lo lanzo manualmente funciona, pero a través de la tarea programada, no funciona.
Código Delphi [-]
    fechastring:= oArchivo.ReadString('FECHA', 'UltimaFecha', '31/12/2000');
    fechadate:= StrToDate(fechastring);

Se para en el guardado en fechadate, lo he comprobado guardando logs.

Me tiene un poco loco esto.

Se os ocurre algo?

Muchas gracias
Responder Con Cita
  #2  
Antiguo 24-02-2021
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Sin más datos parece que se debe a una actualización reciente de Windows, seguramente un tema de permisos.
Responder Con Cita
  #3  
Antiguo 24-02-2021
juggern juggern is offline
Miembro
 
Registrado: jun 2020
Posts: 79
Poder: 4
juggern Va por buen camino
Lo tengo puesto como administrador y ejecutar con los privilegios más altos.

Igualmente es que es muy raro, porque no funcionan cosas como strtoDate, que no entiendo en que puede influir que lance el proceso con un botón o con tarea programada.

Estoy bastante perdido.

En el botón le tengo puesto simplemente lanzar el procedimiento y en la tarea programada, lanzo el procedimiento que lo puse como parámetro dentro del ejecutable.


Última edición por juggern fecha: 24-02-2021 a las 11:08:31.
Responder Con Cita
  #4  
Antiguo 24-02-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿El formato de fechas en ese equipo?
Responder Con Cita
  #5  
Antiguo 24-02-2021
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Esos errores que surgen de la noche a la mañana no suelen ser por nada de tu aplicación sino por el entorno en el que se ejecuta.
Revisa (solo por descartar) si la tarea se ejecuta correctamente en otro puesto que tenga el mismo sistema operativo y la misma actualización, la misma versión de tu programa, de tu base de datos, de fecha.
Si yo te contara la de cosas extrañas que me han sucedido por actualizaciones: pdfs que ya no abre acrobat, impresoras que solo imprimen la primera hoja o que dejan de imprimir después de x veces, mensajes que quedan por detrás de otra ventana...
Responder Con Cita
  #6  
Antiguo 24-02-2021
juggern juggern is offline
Miembro
 
Registrado: jun 2020
Posts: 79
Poder: 4
juggern Va por buen camino
Voy a revisar todo eso a ver, sobre todo lo del formato de fechas porque si que veo que cuando me coge la fecha base de sql que es 30/12/1899, me pone 12/30/1899, puede ir por ahí, pero no entiendo porqué entonces falla cuando lo lanzo de una manera y no falla de la otra.

Me edito:

Nada, la fecha no parece ser, es un windows server 2008.

No entiendo nada, es un simple StrtoDateTime que funciona al ejecutarlo de una forma y de la otra no. No se.
Debe de ir por ahí porque si hago, al coger el dato del ini. ReadString, me lo lee bien, pero si hago un .ReadDateTime para guardarlo en un TDateTime, no lo coge bien.

Última edición por juggern fecha: 24-02-2021 a las 11:42:31.
Responder Con Cita
  #7  
Antiguo 24-02-2021
juggern juggern is offline
Miembro
 
Registrado: jun 2020
Posts: 79
Poder: 4
juggern Va por buen camino
Os enseño más pruebas que estoy haciendo.

El .ini tiene lo siguiente:
Cita:
[FECHA]
UltFecha=24/02/2021 12:36:13
En el código me he creado 2 variables, una string sUltFecha y otra datetime dUltFecha.

He hecho que me escriba mensajes en un fichero.

El código es:
Código Delphi [-]
    sUltFecha:= oArchivo.ReadString('FECHA', 'UltFecha', '31/12/1999');
    WriteLN(Fich, 'FECHA STRING : '+sUltFecha);
    dUltFecha:= oArchivo.ReadDateTime('FECHA', 'UltFecha', 31/12/1999);
    WriteLN(Fich, 'FECHA DATETIME: '+DateTimetoStr(dUltFecha));

Si lo lanzo arrancando el exe y dándole al botón que llama al procedimiento, me escribe esto en el fichero:

Cita:
FECHA STRING : 24/02/2021 12:35:02
FECHA DATETIME: 24/02/2021 12:35:02
Si lanzo el procedimiento a través de la tarea programada, me escribe esto en el fichero:

Cita:
FECHA STRING : 24/02/2021 12:36:13
FECHA DATETIME: 12/30/1899 12:01:51 AM
No lo entiendo, en el equipo no veo nada raro y no se ha actualizado.
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
Fallo en tarea programada. Lanzar programa con interfaz gráfica fjcg02 Windows 27 07-10-2014 14:46:41
Crear una Tarea Programada. DasGrun Windows 1 04-08-2010 11:44:38
Tarea programada en Linux con Firebird 2.5 Axel_Tech Firebird e Interbase 6 16-04-2010 18:52:16
Tarea programada en delphi drykea Varios 6 18-02-2008 16:59:19
hacer una tarea programada Patricio Varios 6 18-09-2007 20:39:21


La franja horaria es GMT +2. Ahora son las 05:51:15.


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