Page 1 of 1

Ejecución de código en un timer alterando bases de datos

Posted: Fri Apr 24, 2015 6:37 am
by Verhoven
Necesito ejecutar unos cálculos sobre unas bases de datos dentro de un timer.

Esto modifica el órden de los registros y las tablas en uso en ese momento, por lo que si el usuario estaba haciendo otra cosa en ocasiones me da errores por haber cambiado las posiciones del registro en las tablas.

He pensado que una solución podría ser usar un hilo distinto pero no se como trabajar con hilos ni por donde empezar con esto.

O bien, crear un exe para ese proceso del timer y que el programa principal lo mande ejecutar al arrancar y que lo haga minimazado, de modo que para el usuario ese proceso del timer sea transparente y solo vea el del programa principal.

¿Cual piensan que sería la mejor solución?.

Re: Ejecución de código en un timer alterando bases de datos

Posted: Fri Apr 24, 2015 6:57 am
by Biel EA6DD
Abres la tabla en modo compartidos dos veces, con alias distintos. Cada proceso utiliza un alias, y no afecta el hecho de que muevas punteros pues cada alias maneja los propios.

Re: Ejecución de código en un timer alterando bases de datos

Posted: Mon Apr 27, 2015 11:32 am
by Silvio.Falconi
sample :

DEFINE TIMER ::oOutLic INTERVAL 20000 OF ::oWndMain ;
ACTION ( ::nTimeLic ++, if ( ::nTimeLic == 4,;
( MsgInfo( "any text" ),Pstart()),))

ACTIVATE TIMER ::oOutLic



Function Pstart()
//here your function to alterate database
return nil