![]() |
Conectando a un motor SQL en el inicio
Un problema que puede presentarse cuando tenemos una aplicación que accede a un motor de base de datos SQL (por ejemplo Firebird) y que arranca automáticamente al iniciarse el sistema operativo (Linux, Windows, etc.) es que puede darse el caso de que la aplicación arranque e intente conectarse cuando el motor SQL aún no arrancó (normalmente se ejecutan como un servicio). Ante esto, lo que hago es reintentar el acceso al motor durante un cierto tiempo (120 segundos, o sea dos minutos), y registrar el tiempo que se demoró en conectar. El código lo uso en Lazarus pero debería funcionar sin problemas con Delphi:
Para eso, vamos a usar un temporizador, por medio de una variable de tipo TDateTime:
Usaremos una función que convierte a segundos una variable TDateTime (mejor dicho, la diferencia entre dos valores TDateTime):
Intentamos conectar a la base de datos (en el ejemplo se usan los componentes libres ZeosLib, más exactamente ZConnection):
Nota: La función "segundos" obviamente puede desbordarse si se le proporciona un valor de TDatetime muy grande, pero en este código no existe ese problema, porque se utiliza la diferencia entre dos variables TDateTime, que es un valor pequeño. ^\||/ |
La franja horaria es GMT +2. Ahora son las 20:41:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi