PDA

Ver la Versión Completa : Continuar aplicación desde comienzo hilo ejecución


mjjj
28-12-2015, 20:58:53
Estimados, tengo una aplicación que se conecta a un servidor DataSnap. Como en algunas oportunidades el servidor no está accesible, antes de realizar la consulta reviso la conección dentro de una clase heredada de TThread para que el usuario no perciba que la aplicación está pegada.
Lo que necesito hacer es que cuando un usuario, por ejemplo presione un boton, se deshabiliten todos las funciones donde pueda interactuar con el servidor Datasnap y comience a revisar la conección. Luego, una vez terminada la comprobación y si es que fue lograda, que siga con la rutina de consulta al servidor datasnap del butón pinchado anteriormente.

Como puedo hacer esto??
Como se hace esto?

Saludos.

elrayo76
28-12-2015, 21:29:21
Lo que yo te aconsejaría es hacer un timer que verifique la conxión cada X tiempo. y solo ejecute esas funciones si se pudo conectar. En caso de no conectar que siga verificando sin ejecutar nada.

Espero que te sirva.

Saludos,
El Rayo

AgustinOrtu
28-12-2015, 22:06:03
Yo revisaria los eventos de TSQLConnection; en tu caso el que te sirve es OnDisconnected

mjjj
28-12-2015, 22:24:17
El evento de desconección no sirve, ya que no reconoce si se perdió la conección, solo cuando se de forma manual de desconecta.

Respecto al timer, tampoco creo que es la mejor solución, ya que la idea es mantener la conección cerrada, para evitar problema que se cuelgue la aplicación, y solo abrirla cuando lo requiera.

Como se hace esto??
Como lo hacen las aplicaciones que se conectan a este tipo de servidor??

Saludos.

AgustinOrtu
28-12-2015, 23:09:30
No podes deshabilitar/habilitar los botones dentro del thread? O poner alguna ventana modal que muestre "conectando"?

elrayo76
29-12-2015, 02:36:48
Yo decia lo del timer porque en en mi trabajo tenemos una aplicación que trabaja con threads y cada tanto verifica que la base de dato no este caida.

Si encuentra que se desconecto manda al usuario el mensaje de que no se puede conectar y si es problema que no llega al servidor o que se cayo la base de datos.

Todo eso lo hacemos con un timer que solo permite hacer uso de la base, ya sea para SELECT, INSERT, UPDATE o lo que fuese si la conexión esta activa y se puede acceder sin problemas a la base de datos.

Saludos,
El Rayo