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

ASP Se destruyen las variables de session ???

Estas en el tema de ASP Se destruyen las variables de session ??? en el foro de ASP Clásico en Foros del Web. Problemas con la Variable definida en el objeto Session Enviado por Wilson Yadir Acuña el día 30 de enero de 2004 Mi problema es el ...
  #1 (permalink)  
Antiguo 04/02/2004, 10:20
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá
Mensajes: 2
Antigüedad: 20 años, 4 meses
Puntos: 0
ASP Se destruyen las variables de session ???

Problemas con la Variable definida en el objeto Session

Enviado por Wilson Yadir Acuña el día 30 de enero de 2004
Mi problema es el siguiente:

Hago una conexión a una base de datos ubicada en un servidor:
Ob_Conn = new ActiveXObject("ADODB.Connection")
Ob_Conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=//snepro02/web auditoria$/Logon/planillas.mdb")

hago una consulta a una tabla de usuarios en access para obtener una validadción de contraseña y poder ingresar a una sección privada:
Ob_RS= Ob_Conn.Execute (Sqldata)

Luego creo una variable del objeto Session con la información obtenida del registro asi:

Session("usuario")= Ob_RS("Usuario")
Session("contrasena")= Ob_RS("Contrasena")
Session("nombres")=Ob_RS("nombres")

luego imprimo en la hoja el valor de la variable

Response.write (Session("nombres")

y funciona bien hasta aqui!,

Ahora cuando cierro la conexión a la base de datos
Ob_RS.Close()
Ob_Conn.Close()
e intento imprimir nuevamente el objeto
Response.write (Session("nombres")
ya no funciona! y obtengo el siguiente error:

ADODB.Field error '80020009'
Object is no longer valid.
/logon/probar.asp, line 22

ahora si simplemente no cierro la conexión a la base de datos (la dejo como comentario) , y voy a otra página

// Ob_RS.Close()
//Ob_Conn.Close()
Response.redirect("probar.asp")

y en la hoja probar.asp intento acceder a la variable
<%
Response.write (Session("nombres"))
%>

No funciona!, vuelve a salir el mismo mensaje de error anterior:

ADODB.Field error '80020009'
Object is no longer valid.
/logon/probar.asp, line 22

¿A qué se debe?, ¿Cómo puedo solucionar esto? Es la primera vez que me sucede.

Desde ya, gracias por sus sugerencias,
Wilson.
  #2 (permalink)  
Antiguo 04/02/2004, 12:32
Avatar de DeYoN  
Fecha de Ingreso: febrero-2004
Mensajes: 81
Antigüedad: 20 años, 4 meses
Puntos: 0
Pues mmm lo que creo que pasa es que la variable que creas en la sesion no almacena el valor de la variable sino el objeto en si. (No estoy muy seguro )

Prueba a probar esto a ver si funciona.

Dim miVariable
miVariable = Ob_RS("Usuario")
Session("usuario") = miVariable

A ver si hay suerte
  #3 (permalink)  
Antiguo 04/02/2004, 16:06
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá
Mensajes: 2
Antigüedad: 20 años, 4 meses
Puntos: 0
Tienenes toda la razón en cuanto a lo que estoy haciendo es creando una referencia al objeto como tal, sin embargo investigando encontre la solución y es la siguiente:

Session("usuario")= Ob_RS("Usuario").value

Me estaba haciendo falta la especificación value para que éste copie el valor contenido en el objeto recordset y no haga una referencioa al objeto como tal.

Entodo caso gracias por tu colaboración.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:58.