FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
mantener la conexion abierta MyDAC, Delphi 7
Hola a todos;
he estado buscando diferentes formas de solucionar el problema de que mi aplicación en Delphi 7 pierda la conexión con el servidor MySQL en internet. Ninguna ha funcionado totalmente. 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. Como abro un "hilo" de ejecución alterno?; donde lo abro, en el menú principal? o en el Data Module?; una vez abierto que problemas puede tener para el resto de los procesos normales del sistema? Cualquier ayuda para implementar esto es muy muy apreciada. Saludos |
#2
|
||||
|
||||
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:
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/
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Antes que nada, gracias por el tiempo para tu respuesta German;
Cita:
Me inclino a ponerlo en el Menu, ya que es la forma que siempre está abierta. Supongo que una vez activado el Timer, ese se mantiene activo aunque el menú no sea la forma activa en ese momento, verdad? |
#4
|
||||
|
||||
Cita:
Necesitas ponerlo en algún elemento que siempre esté activo. Si el Datamodule está "vivo" siempre, a efectos prácticos es lo mismo. Si no está siempre creado deberás ponerlo en el menú.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
mantener sesion abierta | LACV | FireMonkey | 8 | 25-04-2022 14:14:48 |
Conexión MYDAC, ANDROID y WAMPSERVER | Jose Roman | Conexión con bases de datos | 1 | 28-06-2021 05:17:41 |
Verificar Parametro de conexion en mydac | webmasterplc | OOP | 3 | 01-08-2012 18:11:53 |
Problemas conexion MyDAC | karlaoax | Conexión con bases de datos | 16 | 16-08-2007 22:27:41 |
componentes MyDAC de conexion | docarrillo | Conexión con bases de datos | 3 | 07-07-2003 13:41:59 |
|