• Lunes 23 de Diciembre de 2024, 02:19

Autor Tema:  Ejecutar en tiempo determinado  (Leído 4568 veces)

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Ejecutar en tiempo determinado
« en: Jueves 14 de Enero de 2010, 17:59 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Re: Ejecutar en tiempo determinado
« Respuesta #1 en: Sábado 16 de Enero de 2010, 16:17 »
0
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

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Ejecutar en tiempo determinado
« Respuesta #2 en: Domingo 17 de Enero de 2010, 09:37 »
0
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

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Ejecutar en tiempo determinado
« Respuesta #3 en: Domingo 17 de Enero de 2010, 15:14 »
0
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
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================