Page 1 of 1

Duda con Timer en tiempo de ejecución

PostPosted: Fri Jan 15, 2010 10:56 pm
by mariordz
Hola, deseo implementar un timer que cada 5 minutos abra una base de datos y haga un conteo de registros que cumplan un criterio en ella de acuerdo al usuario que esta ejecutando la aplicación, el problema es que si el usuario tiene abierta una base de datos al momento de que se ejecute la función asociada al timer la base de datos del usuario se desactivará, ya que se pondra en activo la base de datos que abre la función del timer, la pregunta es:

¿Como puedo restaurar los valores de la base de datos activa, sus indices, relaciones y no. de registro de la base que estaba activa (si es que estaba activa alguna en ese momento) despues de ejecutar la función del timer?

Posiblemente haya alguna función similar al savescreen() (sé que esta no funciona en FW) y restorescreen() de clipper que se puedan usar en FW, algo asi como salvar el entorno de todas las variables, bases, relaciones e indices activos al momento de que la ejecución sea interrumpida por el timer y despues recuperarlos para que la ejecución del programa se continue de forma transparene para el usuario.

Muchas gracias por la ayuda.

Re: Duda con Timer en tiempo de ejecución

PostPosted: Sat Jan 16, 2010 1:14 pm
by Patricio Avalos Aguirre
Hola

Podrias abrir la base de la funcion del timer con un nuevo alias, ese alias es solo para el timer

Code: Select all  Expand view
function funciontimer()
local cAlias := Alias()
sele 0 ; use BASE new ALIAS "FTIMER" SHARED

ftimer->( dbGobottom() )
fTimer->loquesea....

fTimer->( dbCloseArea() )

if !empty( cAlias )
  dbSelect( cAlias )
endif

RETURN( .T. )
 

Re: Duda con Timer en tiempo de ejecución

PostPosted: Tue Jan 19, 2010 9:39 pm
by mariordz
Patricio, tu sugerencia funcionó a la perfección.

Muchas gracias por la ayuda