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

[0] Índice de Mensajes

Ir a la versión completa