Programación General => Power Builder => Mensaje iniciado por: darksito en Jueves 14 de Enero de 2010, 17:59
Título: Ejecutar en tiempo determinado
Publicado por: darksito en Jueves 14 de Enero de 2010, 17:59
Hola amigos de solocodigo mi pregunta es la siguiente ¿Como puedo lograr ejecutar un proceso cada cierto tiempo ? por ejemplo chequear cada 5 minutos si mi conexion con mi base de datos esta bien o guardar unos datos a una tabla x cada 1 hora ? Se puede lograr eso en powerbuilder
Título: Re: Ejecutar en tiempo determinado
Publicado por: darksito en Sábado 16 de Enero de 2010, 16:17
Me respondo:
En el la venatana principal en el evento (open)
Timer(n*60)
n multiplica por 60 segundos ya que esta funcion trabaja con segundos.
En el vento (Time) de la mista ventana Colocas lo que deseas ejecutar En mi caso
If gi_conex.of_connectdb( ) = 0 Then Else Messagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador") End If
Accion verificara cada minuto la conexion a la base de datos :D
Título: Re: Ejecutar en tiempo determinado
Publicado por: davidmolina1 en Domingo 17 de Enero de 2010, 09:37
Efectivamente, el método timer() sirve para que el evento timer se ejecute periodicamente, pero, a mi entender, los dos ejemplos que has puesto no son adecuados.
1.- Cuando una aplicación se conecta a la base de datos, lo normal es que siga conectada, y en el caso de que se produzca una desconexión ya te darás cuenta cuanda hagas alguna operación, ¿para qué vas a mirar cada x minutos si sigues conectado?
2.- Grabar datos cada x minutos. ¿Qué pasa si la grabación se hace cuando el registro está a medio terminar, o con datos incompletos? Lo normal es que el usuario decida cuando grabe y antes de grabar se haga algunas comprobaciones (ya sabes rango de fechas, datos obligatorios, etc)
Un saludo.
Título: Re: Ejecutar en tiempo determinado
Publicado por: F_Tanori en Domingo 17 de Enero de 2010, 15:14
No se ve nada bien dejar un If vacio :P
Código: Visual Basic
If gi_conex.of_connectdb( ) = 0 Then
Else
Messagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador")
Hay una forma que se puede utilizar como Timer, es cuando una aplicacion esta inactiva, el objeto aplicacion tiene un evento llamado Idle y para crear uno, en ocaciones me ha resultado mas efectivo.. depende del caso..
lo puedes hacer en el evento open de la aplicacion
Código: Visual Basic
Idle(5)
Lo demas es como el timer..., y puede tener diferentes usos.