Abrir una base SQL

17/05/2005 - 06:58 por Byron | Informe spam
Estimados amigos hace poco baje unos ejemplos de codigo de visual basic y
revisando el codigo, me di cuenta que por cada consulta que se realiza se
abre la base y se cierra, es lo recomendable abrir y cerrar por cada select
o se puede quedar abierta la base todo el tiempo que el usuario use el
programa?

Gracias

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
17/05/2005 - 07:36 | Informe spam
Byron wrote:
Estimados amigos hace poco baje unos ejemplos de codigo de visual
basic y revisando el codigo, me di cuenta que por cada consulta que
se realiza se abre la base y se cierra, es lo recomendable abrir y
cerrar por cada select o se puede quedar abierta la base todo el
tiempo que el usuario use el programa?



La regla general para el uso de cualquier recurso es acceder a el a ultimo
momento y liberarlo lo antes posible. Esto se aplica tambien para las
conexiones de base de datos. Es decir, lo recomendable es abrir la conexion
cuando se requiere acceder a la base y cerrarla lo antes posible. Esto no
significa que sea por comando ejecutado, puedes abrir la conexion, ejecutar
varios comandos (seguidos claro esta) y luego cerrarla. Lo que si NO debes
hacer es abrir la conexion al iniciar la aplicacion y mantenerla abierta
hasta que se cierre la aplicacion.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 A.Poblacion
17/05/2005 - 09:05 | Informe spam
"Byron" wrote in message
news:
Estimados amigos hace poco baje unos ejemplos de codigo de visual basic y
revisando el codigo, me di cuenta que por cada consulta que se realiza se
abre la base y se cierra, es lo recomendable abrir y cerrar por cada


select
o se puede quedar abierta la base todo el tiempo que el usuario use el
programa?



Piensa que se utiliza de forma predeterminada un "pool" de conexiones.
Funciona de tal forma que cuando cierras una conexión abierta, la conexión
no se cierra de verdad sino que se devuelve al pool. Cuando vuelves a abrir
la conexión, no se abre de verdad, sino que se recupera del pool la que ya
estaba abierta.
Por consiguiente, no hay problema en que pongas un Open y un Close de la
conexión cada vez que ejecutas un comando, porque el sistema ya optimiza el
proceso internamente para no abrir y cerrar la conexión todo el rato.
Respuesta Responder a este mensaje
#3 Irak Rubio
18/05/2005 - 18:37 | Informe spam
Efectivamente, existe un almacen de conexiones, y cosa curiosa porque en una
ocasion, programe una rutina que generaba una conexion, la abria, hacia lo
que tenia que hacer y luego cerraba la conexion, y destruia (segun yo) el
objeto Connection, pero como esta rutina respondia a un ciclo, llego el
momento en que el sistema me marco un error diciendome que ya no quedaba
capacidad en el almacen de conexiones para agregar otro objeto connection,
asi que lo que hice fue declarar la variable fuera del procedimiento (hacerla
publica y reutilizarla)
¿curioso no?

"A.Poblacion" escribió:

"Byron" wrote in message
news:
> Estimados amigos hace poco baje unos ejemplos de codigo de visual basic y
> revisando el codigo, me di cuenta que por cada consulta que se realiza se
> abre la base y se cierra, es lo recomendable abrir y cerrar por cada
select
> o se puede quedar abierta la base todo el tiempo que el usuario use el
> programa?

Piensa que se utiliza de forma predeterminada un "pool" de conexiones.
Funciona de tal forma que cuando cierras una conexión abierta, la conexión
no se cierra de verdad sino que se devuelve al pool. Cuando vuelves a abrir
la conexión, no se abre de verdad, sino que se recupera del pool la que ya
estaba abierta.
Por consiguiente, no hay problema en que pongas un Open y un Close de la
conexión cada vez que ejecutas un comando, porque el sistema ya optimiza el
proceso internamente para no abrir y cerrar la conexión todo el rato.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida