Foros del Web » Programando para Internet » ASP Clásico »

Cerrar conexión a base de datos si fue abierta desde función

Estas en el tema de Cerrar conexión a base de datos si fue abierta desde función en el foro de ASP Clásico en Foros del Web. Hola, veréis cuál es mi duda: si yo abro una conexión a base de datos desde una función, y esa función quiero que devuelva un ...
  #1 (permalink)  
Antiguo 16/08/2009, 09:54
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 20 años, 2 meses
Puntos: 6
Cerrar conexión a base de datos si fue abierta desde función

Hola,

veréis cuál es mi duda:

si yo abro una conexión a base de datos desde una función, y esa función quiero que devuelva un recordset, me encuentro con que no puedo cerrar la conexión sin destruir el recordset.

¿Cómo puede ser esto? ¿Tan mal hecho está que no puedo devolver un recordset desde una función? Pues desde fuera de la función ya no puedes cerrar la conexión, a no ser claro que la hubieras abierto previamente.

Si tomara como solución dejar abierta la conexión... Dudas:

a) ¿Consume muchos recursos hacer esto?
b) ¿Algún método más o menos digno para resolver esto? Uno puede ser lo que he dicho, de abrir la conexión antes, o utilizar variables globales.

PD: Sé que hay métodos alternativos, que es lo que utilizo, para cargar el recordset en memoria (getrows) y poder cerrar la conexión. Creo que es la opción óptima. Pero quiero saber si, sin utilizar este método, puede utilizarse el recordset.
  #2 (permalink)  
Antiguo 16/08/2009, 11:45
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 19 años, 3 meses
Puntos: 8
Respuesta: Cerrar conexión a base de datos si fue abierta desde función

deverias seguir estos pasos
tener una funcion:
Conectar()
Consultar(parametros)
Desconectar()
__________________
Mc_Quake

Para ayudar en lo que se pueda:Zzz:
  #3 (permalink)  
Antiguo 16/08/2009, 12:58
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Cerrar conexión a base de datos si fue abierta desde función

Hola

Cita:
Iniciado por un_tio Ver Mensaje
Hola,

veréis cuál es mi duda:

si yo abro una conexión a base de datos desde una función, y esa función quiero que devuelva un recordset, me encuentro con que no puedo cerrar la conexión sin destruir el recordset.

¿Cómo puede ser esto? ¿Tan mal hecho está que no puedo devolver un recordset desde una función? Pues desde fuera de la función ya no puedes cerrar la conexión, a no ser claro que la hubieras abierto previamente.

Si tomara como solución dejar abierta la conexión... Dudas:

a) ¿Consume muchos recursos hacer esto?
b) ¿Algún método más o menos digno para resolver esto? Uno puede ser lo que he dicho, de abrir la conexión antes, o utilizar variables globales.

PD: Sé que hay métodos alternativos, que es lo que utilizo, para cargar el recordset en memoria (getrows) y poder cerrar la conexión. Creo que es la opción óptima. Pero quiero saber si, sin utilizar este método, puede utilizarse el recordset.
No entiendo realmente tu dudas cuando tu mismo te has respondido diciendo que getrows() es la mejor opción. De cualquier modo, si cierras la conexión destruyes el recordset, a no ser alguien diga lo contrario

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 17/08/2009, 12:00
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 20 años, 2 meses
Puntos: 6
Respuesta: Cerrar conexión a base de datos si fue abierta desde función

Cita:
Iniciado por mc_quake Ver Mensaje
deverias seguir estos pasos
tener una funcion:
Conectar()
Consultar(parametros)
Desconectar()
Claro, eso son los pasos lógicos y básicos que tiene que tener cualquier función de consulta a base de datos. ¿Pero qué pasa si los parámetros que quieres devolver, no son unos pocos sino el propio recordset?

Cita:
Iniciado por Adler Ver Mensaje
Hola



No entiendo realmente tu dudas cuando tu mismo te has respondido diciendo que getrows() es la mejor opción. De cualquier modo, si cierras la conexión destruyes el recordset, a no ser alguien diga lo contrario

Suerte
Bueno, sí, si mi duda está resuelta utilizando eso. Era por saber si había otro modo. Es que me sorprendió ver que en cierto modo "era imposible" devolver un recordset por una función (a no ser que dejaras sin cerrar la conexión).

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:40.