Automatización de Conexión en N-Capas

29/07/2003 - 22:13 por Juan Carlos Zúñiga Coto | Informe spam
Hola,

Estoy tratando de diseñar e implementar una aplicación en
N-Capas. Surgio el problema de abrir solo una vez la
conexión a base de datos con ADO, ya que el componente
siempre tiene que abrir una nueva conexión y después
cerrar cuando hago el llamado del método que ejecuta la
consultas a nivel de base de datos, y además la cadena de
conexión, "ConnectionString", esta a nivel de código
dentro del componente.

Que soluciones existen para tener un conexión siempre
abierta y configurable ("ConnectionString", TimeOut, etc)
para queel componente la solicite tantas veces la necesite
de ella sin tener que cerrearla y volver abrir de nuevo la
conexión.

De antemano, agradezco cualquier ayuda que me puedan
brindar.
 

Leer las respuestas

#1 Marcel
30/07/2003 - 00:28 | Informe spam
Hola Juan :

<Que soluciones existen para tener un conexión siempre
<abierta y configurable ("ConnectionString", TimeOut, etc)
<para queel componente la solicite tantas veces la necesite
<de ella sin tener que cerrearla y volver abrir de nuevo la
<conexión.

La manera primordial de hacer que una única conexión --ya establecida
correctamente--sea la que acceda a la base de datos en todo el programa, es
que se asigne a cada módulo de clase que se vaya activando; es práctica
habitual tener una DLL para acceder a la base de datos, la cual tiene una
variable pública de tipo conexión ADO. En esta clase programamos los
procesos que manipularan la base de datos segun la necesidad a cubrir; Hemos
creado, pues, una programacion modular independiente del cuerpo del
programa. La conexión se asigna antes de invocar la dll, como es lógico.

<consultas a nivel de base de datos, y además la cadena de
<conexión, "ConnectionString", esta a nivel de código
<dentro del componente.

Podemos hacer varias "selects" -por ejemplo- sobre diferentes recordsets ADO
pasando como parámetro la conexión actualmente establecida. La función o
proceso de la DLL que invocaremos desde el programa llamador para iniciar la
lectura, será también público (public). Los demás procesos de la Dll no
tienen por qué serlo. Son de orden interno (private) y obedecen a una buena
organizacion del código.

Análogamente, podemos pasar las instrucciones SQL a través de variables
string publicas en la dll, que nos retornen valores mediante un raiseevent
en las lecturas de cada registro.

De forma semejante, podriamos programar OCX, los controles de usuario
ActiveX en lugar de las DLL Siendo esencialmente lo mismo : objetos
variables y procesos públicos para controlar el funcionamiento del
usercontrol ocx.


Saludos desde la deportiva Barcelona
Marcel


"Juan Carlos Zúñiga Coto" escribió en el
mensaje news:01ea01c3560d$d2834e10$

Hola,

Estoy tratando de diseñar e implementar una aplicación en
N-Capas. Surgio el problema de abrir solo una vez la
conexión a base de datos con ADO, ya que el componente
siempre tiene que abrir una nueva conexión y después
cerrar cuando hago el llamado del método que ejecuta la
consultas a nivel de base de datos, y además la cadena de
conexión, "ConnectionString", esta a nivel de código
dentro del componente.

Que soluciones existen para tener un conexión siempre
abierta y configurable ("ConnectionString", TimeOut, etc)
para queel componente la solicite tantas veces la necesite
de ella sin tener que cerrearla y volver abrir de nuevo la
conexión.

De antemano, agradezco cualquier ayuda que me puedan
brindar.

Preguntas similares