Bueno, yo más que un hilo nuevo te hubiera propuesto que pusieras un Timer que cada minuto (por ejemplo) ejecute una consulta simple sobre la Base de Datos para mantener la conexión activa.
Una consulta sencilla tipo:
(escogiendo una tabla pequeña con pocos registros para minimizar la carga).
¿Porqué te sugería un un Timer y no un hilo nuevo? Porque la mayoría de componentes de conexión a Base de Datos no son Thread-safe (desconozco si lo son los de MyDAC); eso significa que para usarlos en un hilo nuevo, debes usar una nueva conexión. Al usar una nueva conexión, ya no estás usando la conexión principal y por lo tanto el objetivo de mantenerla abierta ya no se si se cumple.
De todas formas si la gente de MyDAC lo recomiendan, pues adelante.
Cita:
Empezado por ArtPortEsp
Se me ocurrió que pudiera mantener un "hilo" ejecutando cada cierto tiempo el método PING de Tmyconnection (que según lo que he leído, es lo que recomiendan los de DEVART). Pero no tengo ni idea de como hacerlo.
|
Creo un TThread y programa dentro lo que necesites (PING). Luego asegúrate desde el programa (por ejemplo cada minuto -con un Timer-) de ir ejecutando ese thread de forma continua.
Aquí tienes una entrada en mi blog -ya antigua- justo sobre cómo lanzar consultas utilizando TThreads. Justo lo que necesitas. Lo único que aquí se hace con ADO, pero es trivial cambiar el componente de conexion (TADOConnection) y el de query (TADOQuery) por los equivalentes en MyDAC para que funcione sin problemas.
https://neftali.clubdelphi.com/utili...o-con-threads/