SoloCodigo

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
  1. If gi_conex.of_connectdb( ) = 0 Then
  2. Else
  3. Messagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador")
  4. End If
  5.  

------------------------------------------------------------------------------------------
Código: Visual Basic
  1.  
  2. If NOT (gi_conex.of_connectdb( ) = 0) Then
  3.      Messagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador")
  4. End If
  5.  


Código: Visual Basic
  1.  
  2. If  gi_conex.of_connectdb( ) <> 0  Then
  3.      Messagebox("Aviso de Sistema Grabe","No tiene conexion con el servidor de base de datos~n~rcomuniquese con su programador")
  4. End If
  5.  
------------------------------------------------------------------------------------------

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
  1.  
  2. Idle(5)
  3.  

Lo demas es como el timer..., y puede tener diferentes usos.

Saludos