![]() |
Cuando conectar la BD y abrir las tablas
Buenos días,
estoy haciendo un programa con Lazarus y finalmente uso PostgreSQL par las Bases de datos. He instalado Zeos para la conexión y resto que necesito. Al tener varios formularios que acceden a las diferentes tablas he preferido crear un DataModule con la conexión a la BD y tambien meto ahi los DataSet y DataSources. Para tener esas tablas disponibles en el resto de form incluyo en "uses" el nombre del DataModule y asi ya dispongo de ello. La duda que tengo es si es recomendable conectar la BD y abrir las tablas en el datamodule para que estén disponibles a lo largo de toda la aplicación o por lo contrario es mejor abrir y cerrar continuamente las tablas y la conexion a medida que los forms las necesiten. Muchas Gracias por vuestra atención |
Algunos componentes... no se si los Zeos al tratar de hacer una consulta u obtener datos de una tabla si no estás conectado inmediatamente activan la conexión... por lo menos PostgresDAC lo hace así...
Ahora para mi siempre realizo la conexión a la DB desde el inicio del programa... y como está parametrizada desde un INI de paso verifico que todo esté OK. Abrir las tablas en el momento que se requieran... y si puedes cerrarlas al cerrar el formulario para que no ocupen memoria. tambien uso PostgreSQL cualquier duda que tengas ya sabes que estamos dispuestos a ayudar; Siempre. -- We are of peace. Always :D |
Pues coincido con lo dicho.
Salvo que haya condiciones fuera de lo normal, lo lógico es mantener la conexión abierta con Base de datos e ir accediendo a las tablas vía (Table o Query) sólo cuando lo necesites y no mantenerlas abiertas. Salvo que lo que debas hacer requiera algo especial, creo que es una buena "norma general". |
Según entiendo, la mejor forma de hacer esto, sería siguiendo la regla de programación #513522378:
Conecta lo más tarde posible y desconecta lo más pronto posible. Según me recomiendan, ni la conexión a la base de datos debería estar activa todo el tiempo. |
La conexión sí la mantendría abierta puesto que es bastante costosa de hacer (en comparación con otras operaciones). Si continuamente se hacen consultas y en cada una se conecta y desconecta, esto supone una pérdida grande de tiempo.
En sistemas con mucha carga y muchas conexiones se puede evaluar el uso de Connection Pooling, que permite compartir X conexiones abiertas entre X+N equipos. |
La franja horaria es GMT +2. Ahora son las 13:14:53. |
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