Retroceder   Foros del Web > Programación para sitios web > ASP Clásico

Respuesta
 
Herramientas Desplegado
Antiguo 04-jun-2008, 09:54   #1 (permalink)
Sancas ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
Controlar apertura de conexion a BD

Tengo que crear un include, compartido, obviamente, por todas las páginas de un área.
El caso es que, siendo éstas muchas páginas y diferentes, nunca se sabe si la conexión a la base de datos está abierta o ya la cerraron cuando se pide el include.
La sintaxis de la conexión es la siguiente:
Código:
Set cn = Server.CreateObject ("ADODB.Connection")
cn.ConnectionString = "driver={SQL Server}; server=blablablablabla..."
cn.Open
La cuestión es que necesitaré tener abierta la conexión dentro del include para hacer una sql y sacar una cosa u otra dependiendo del resultado.

Mi pregunta es esta:
Cómo puedo controlarlo de tal forma que no me de error al intentar abrir de nuevo la conexión si ya está abierta?

He visto alguna vez un comando parecido a este texto "on error resume next"
No se si está bien escrito o le falta código...

Se podría hacer también un if?
Código:
if cn<>"" 'es decir, si está abierta

if con<>nothing 'no se si funcionaría esta...
Opinen y ayuden por favor.

Muchas gracias por adelantado ;)
Sancas está desconectado   Responder Citando
Antiguo 04-jun-2008, 10:09   #2 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.474
Respuesta: Controlar apertura de conexion a BD

Hola Sancas, a reserva de ver tu código, no debería haber razón para tener siempre esa conexión abierta, utiliza en tu include solamente el string de conexión y conforme la vayas necesitando, creas, abres y destruyes, son solamente 3 líneas más de código que te ahorrarán muchísmo más de lo que te quitan.

Saludos
__________________
¿Qué darías por vivir un sueño?
u_goldman está desconectado   Responder Citando
Antiguo 04-jun-2008, 11:07   #3 (permalink)
Sancas ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
Respuesta: Controlar apertura de conexion a BD

Cita:
Iniciado por u_goldman Ver Mensaje
Hola Sancas, a reserva de ver tu código, no debería haber razón para tener siempre esa conexión abierta, utiliza en tu include solamente el string de conexión y conforme la vayas necesitando, creas, abres y destruyes, son solamente 3 líneas más de código que te ahorrarán muchísmo más de lo que te quitan.

Saludos
Hola u_goldman, gracias por responder, pero no entiendo qué me quieres decir.

Son muchas páginas las del área, y más de la mitad ni las habré visto, tan sólo estoy modificando algunas cosas que ha programado otra persona.
Lo que si puedo decir, después de ver varias páginas es que hay dos formas de hacerlas...

1º forma:
Abre conexiones
Declara variables
Ejecuta funciones
Cierra y descarga
Escribe Html, Head, Body
Escribe el cuerpo
Cierra

2º forma:
Abre conexiones
Declara variables
Ejecuta funciones
Escribe Html, Head, Body
Escribe el cuerpo teniendo la conexión abierta porque necesita consultar cosas
Cierra

Entonces, el include va dentro del cuerpo, y para cada página estará abierta o cerrada la conexión, quién sabe...

Lo que quiero es un código breve(un if, lo que sea) para determinar si sigue abierta la conexión o ya la cerraron, y actuar en consecuencia (es decir, o ejecutar el código o abrir conexion y ejecutar el código)

Un saludo.
Sancas está desconectado   Responder Citando
Antiguo 04-jun-2008, 11:22   #4 (permalink)
Colaborador
Shiryu_Libra llegará a ser famoso muy prontoShiryu_Libra llegará a ser famoso muy prontoShiryu_Libra llegará a ser famoso muy pronto
 
Avatar de Shiryu_Libra
 
Fecha de Ingreso: febrero-2007
Ubicación: Localhost/Pruebas....
Mensajes: 2.922
Enviar un mensaje por MSN a Shiryu_Libra Enviar un mensaje por Yahoo  a Shiryu_Libra Enviar un mensaje por Skype™ a Shiryu_Libra
Respuesta: Controlar apertura de conexion a BD

tu quieres saber el estado de la conexion??
entonces debes leer este POST

de cualquier manera, toma en consideracion lo que el Master Darkness U_G menciona
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
Shiryu_Libra está desconectado   Responder Citando
Antiguo 04-jun-2008, 11:47   #5 (permalink)
Sancas ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
Respuesta: Controlar apertura de conexion a BD

Gracias Shiryu_Libra por contestar. Retomo, por si alguien está interesado, lo que mencionas en el link:

Código HTML:
if isObject(conn) then
    Select Case conn.Status
       case 1
            ' Esta abierto
       case 2
            ' Se esta abriendo
       case 4
            ' Se esta ejecutando un comando
       case 8
            ' El objeto se esta cargando
       case Else
            ' El objeto esta cerrado
    end Select
end if
Así pues, mi código quedaría de esta forma, no?

Código HTML:
if isObject(conn) then
    Select Case conn.Status
       case 1
            ' Esta abierto
            ' Código
       case Else
            ' El objeto esta cerrado
            Set cn = Server.CreateObject ("ADODB.Connection")
            cn.ConnectionString = "driver={SQL Server}; server=blablablablabla..."
            cn.Open
            ' Código
    end Select
end if
Mañana por la mañana lo pruebo en el trabajo y ya os contestaré qué tal me va ;)
Sancas está desconectado   Responder Citando
Antiguo 04-jun-2008, 15:42   #6 (permalink)
Colaborador
JuanRAPerez tiene algunos puntos positivos de karma
 
Avatar de JuanRAPerez
 
Fecha de Ingreso: octubre-2003
Mensajes: 1.880
Respuesta: Controlar apertura de conexion a BD

solo un comentario sancas si el objeto esta en el "case 8 (El objeto se esta cargando)", al tratar de abrir de nuevo la conexión te dará error dado que en el select que has puesto, si es 2, 4 y los demás posible tratara de abrir siempre la conexión..

así que valida mas tu código...

no seria mas abrir al inicio de la pagina y cerrar al final?

e ir destruyendo los rs que se van creando para ir dejando limpio el server?????
__________________
JuanRa Pérez
San Salvador, El Salvador
JuanRAPerez está desconectado   Responder Citando
Antiguo 04-jun-2008, 16:04   #7 (permalink)
Sancas ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
Respuesta: Controlar apertura de conexion a BD

Cita:
Iniciado por JuanRAPerez Ver Mensaje
solo un comentario sancas si el objeto esta en el "case 8 (El objeto se esta cargando)", al tratar de abrir de nuevo la conexión te dará error dado que en el select que has puesto, si es 2, 4 y los demás posible tratara de abrir siempre la conexión..

así que valida mas tu código...

no seria mas abrir al inicio de la pagina y cerrar al final?

e ir destruyendo los rs que se van creando para ir dejando limpio el server?????
Entiendo, se que lo ideal sería abrir al principio y cerrar al final, pero la idea es solucionar esto en pocas líneas, en vez de modificar todas las páginas para que sigan este patrón, ya que en muchas cierra antes de mostrar la etiqueta HTML y luego lo saca todo de golpe, pero en otras no...

Sobre los estados, sólo existen esos números? 1, 2, 4 y 8 o hay más?
Puedo hacer un if tipo:
Código HTML:
if conn.Status=1 or conn.Status=2 or conn.Status=4 or conn.Status=8 then
'código
else
'abrimos
'código
end if
Como último recurso siempre queda la opción de modificar todas las páginas y poner los cierres como comentarios... Qué remedio...
Sancas está desconectado   Responder Citando
Antiguo 04-jun-2008, 16:14   #8 (permalink)
Colaborador
JuanRAPerez tiene algunos puntos positivos de karma
 
Avatar de JuanRAPerez
 
Fecha de Ingreso: octubre-2003
Mensajes: 1.880
Respuesta: Controlar apertura de conexion a BD

pero igual tendrias que editar todas las paginas para validar si esta abierta la conexion

o no????
__________________
JuanRa Pérez
San Salvador, El Salvador
JuanRAPerez está desconectado   Responder Citando
Antiguo 04-jun-2008, 16:24   #9 (permalink)
Colaborador
Shiryu_Libra llegará a ser famoso muy prontoShiryu_Libra llegará a ser famoso muy prontoShiryu_Libra llegará a ser famoso muy pronto
 
Avatar de Shiryu_Libra
 
Fecha de Ingreso: febrero-2007
Ubicación: Localhost/Pruebas....
Mensajes: 2.922
Enviar un mensaje por MSN a Shiryu_Libra Enviar un mensaje por Yahoo  a Shiryu_Libra Enviar un mensaje por Skype™ a Shiryu_Libra
Respuesta: Controlar apertura de conexion a BD

preferentemente el Select, cada estado es diferente, no puedes evaluarlos por igual

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
Shiryu_Libra está desconectado   Responder Citando
Antiguo 04-jun-2008, 16:48   #10 (permalink)
Sancas ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 40
Respuesta: Controlar apertura de conexion a BD

Cita:
Iniciado por JuanRAPerez Ver Mensaje
pero igual tendrias que editar todas las paginas para validar si esta abierta la conexion

o no????
No... La validación la meto en el texto de un include, para evaluar si está abierta o ya se cerró y ejecutar el código correspondiente...

Cita:
Iniciado por Shiryu_Libra
preferentemente el Select, cada estado es diferente, no puedes evaluarlos por igual
Pero la conexión se abrió hace mucho (en caso de estar abierta) o se cerró hace un rato, y entre el texto de ese include tan sólo hay etiquetas de tablas, td, tr, digo yo que en esos momentos no debería tener los estados 2, 4 u 8, no?

Me veo al final editando todas las páginas para que no cierren la p*** conexión xDDDDD
Sancas está desconectado   Responder Citando
Antiguo 04-jun-2008, 19:58   #11 (permalink)
Geoorge ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 22
Respuesta: Controlar apertura de conexion a BD

buenisimo el post. vi cosas muy utiles que vo ya implementar. muchas gracias a todos.
Geoorge está desconectado   Responder Citando
Antiguo 05-jun-2008, 09:25   #12 (permalink)
Colaborador
JuanRAPerez tiene algunos puntos positivos de karma
 
Avatar de JuanRAPerez
 
Fecha de Ingreso: octubre-2003
Mensajes: 1.880
Respuesta: Controlar apertura de conexion a BD

Cita:
Iniciado por Sancas Ver Mensaje
...
Me veo al final editando todas las páginas para que no cierren la p*** conexión xDDDDD...
find and replace mi amigo sale mas facil, asi buscas todas las veces qeu se cierra y le pones un apostrofe antes en todas las paginas de forma automatica y haces una funcion de cierre al final

digo mucho mas rapidito o no?

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
JuanRAPerez está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:17.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93