Programación General > Power Builder
Ejecutar en tiempo determinado
(1/1)
darksito:
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
darksito:
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
davidmolina1:
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.
F_Tanori:
No se ve nada bien dejar un If vacio :P
--- Código: Visual Basic ---If gi_conex.of_connectdb( ) = 0 ThenElseMessagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador")End If
------------------------------------------------------------------------------------------
--- Código: Visual Basic --- If NOT (gi_conex.of_connectdb( ) = 0) Then Messagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador")End If
--- Código: Visual Basic --- If gi_conex.of_connectdb( ) <> 0 Then Messagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador")End If ------------------------------------------------------------------------------------------
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.
Saludos
Navegación
Ir a la versión completa