Ver Mensaje Individual
  #5  
Antiguo 28-05-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Mteje Ver Mensaje
La cuestion es: es conveniente que un procedimiento si necesita consultar a la base de datos algo cree un componente TADOQuery dinamicamente y al finalizar el procedimiento lo destruya? o conviene que la unit tenga una variable TADOQuery global que se conecte cuando inicia el software y permanezca siempre conectada?
Mas que nada por la cantidad de conexiones activas cuando el software empiece a crecer ya que esta en etapas inciales.
Creo que en este caso está confundiendo 2 cosas diferentes (o las estás mezclando cuando no debería ser así).
Una cosa es la consulta TADOQuery y otra cosa es la conexión TADOConnection.

Abro paréntesis.
En este caso ADO tiene cierta culpa, porque en un TADOQuery puedes definir también la cadena de conexión. En algún caso esto puede ser beneficioso (para ahorrar un componente TADOConnection), pero en otros puede ser confuso.
Cierro paréntesis.

Crear un TADOQuery es poco costoso al igual que otros componentes. Lo que realmente tarda es "realizar la conexion" (sea desde un TADOConnection o desde un TADOQuery).
Además lo que tampoco sería nada correcto es crear una conexión por cada TADOQuery que necesitemos.

En este caso estoy de acuerdo con [Casimiro] y optaría (normalmente lo hago así) por una solución mixta.

1) Crear un TADOConnection en un lugar accesible y conectarlo.
2) Crear TADOQuery cuando sea necesario y destruirlos cuando ya no se usen y conectarlos a elemento del punto 1.



De esta forma:
  • No consumes tiempo innecesario en conectar.
  • No consumes más conexiones de las necesarias.
  • Creas los componentes cuando los necesitas y los destruyes cuando ya no son necesarios (en tu caso los TADOQuery). Por lo tanto, no consumes memoria nnecearia.
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 28-05-2019 a las 13:16:22.
Responder Con Cita