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

No funciona session_onend()

Estas en el tema de No funciona session_onend() en el foro de ASP Clásico en Foros del Web. hola a todos, he revisado todo el sitio buscando algo similar pero no he encontrado lo que necesito por esto recurro a ustedes. Tengo el ...
  #1 (permalink)  
Antiguo 27/05/2003, 15:54
 
Fecha de Ingreso: junio-2002
Ubicación: Rosario
Mensajes: 230
Antigüedad: 22 años
Puntos: 0
No funciona session_onend()

hola a todos, he revisado todo el sitio buscando algo similar pero no he encontrado lo que necesito por esto recurro a ustedes. Tengo el siguiente codigo dentro del GLOBAL.ASA y el session_onstart() lo ejecuta lo mas bien, pero no pasa lo mismo cuando se cierra la session, ya sea porque se vencio el session.timeout o porque se ejecuto el session.abandon() aqui expongo el codigo del GLOBAL.ASA y cualquier sugerencia sera bienvenida

GLOBAL.ASA:
<script language=VBScript RUNAT=server>
Sub Application_OnStart
application("ruta")=Server.MapPath("dbusuarios.mdb ")
session.timeout=1
end sub
Sub Session_OnStart
set db_sitio=server.CreateObject("ADODB.recordset")
db_sitio.cursortype= 1
db_sitio.locktype=3
db_sql = "SELECT * FROM tb_usuarios"
e="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & application("ruta")
db_sitio.open db_sql, e
db_sitio.addnew
db_sitio("fecha")=date()
db_sitio.update
db_sitio.close
set db_sitio=nothing
end sub

Sub Session_OnEnd
set db_sitio=server.CreateObject("ADODB.connection")
db_sitio.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & application("ruta")
sql="INSERT INTO tb_usuarios (fecha,ip) VALUES ('ccc','ddd')"
db_sitio.Execute sql,,adCmdText
db_sitio.Close()
set db_sitio=nothing
end sub

sub Application_OnEnd
set db_sitio=server.CreateObject("ADODB.connection")
db_sitio.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & application("ruta")
sql="INSERT INTO tb_usuarios (fecha,ip) VALUES ('cc','dd')"
db_sitio.Execute sql,,adCmdText
db_sitio.Close()
set db_sitio=nothing
end sub
</script>


Bien como veran utilizo dos maneras distintas para conectarme a la DB pero esto es puramente de prueba =mente lo prove como la que esta en el session_onstart() y tampoco funciona.

Gracias
  #2 (permalink)  
Antiguo 27/05/2003, 19:11
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Lo utilizas en tu propia maquina? o en un server?

Lo digo porque a mí, tampoco me funciona el session_onend en mi maquina, pero en un server sí.
Será configuración del ISS?

Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #3 (permalink)  
Antiguo 28/05/2003, 22:03
 
Fecha de Ingreso: junio-2002
Ubicación: Rosario
Mensajes: 230
Antigüedad: 22 años
Puntos: 0
mira, lo probe enmi PC y no funciona y lo subi a mi server pago y tampoco, puede ser otra cosa???
__________________
www.enricodev.com.ar
web applications development studio

-- You can be anything you want to be.--
  #4 (permalink)  
Antiguo 29/05/2003, 09:09
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Hola:
He mirado bien tu código y tienes bastante fallos, pero son porque estas empezando.

* " El session.Timeout = 1 " --> Se ha de colocar en Session_OnStart y no en Application_OnStart.

* Puedes abreviar aún más tu conexión:
~~~~~
application("ruta") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dbusuarios.mdb")
~~~~~~
y sólo tendrás que poner:
~~~~
Conn.Open application("ruta")
~~~~~

* En tu Session_OnStart no declaras un objeto conexión:
~~~~~~~~~~
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Application("ruta")
~~~~~~~~~~

Yo haría algo así en tu Session_OnStart:
~~~~~~~~~
Sub Session_OnStart
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Application("ruta")
fecha = date()
Set RS = Conn.Execute("INSERT INTO tb_usuarios (fecha) VALUES('"&fecha&"') ")
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = nothing

Session.Timeout = 1
end sub
~~~~~~~~

Aún así tienes que revisar el Session_OnEnd:

Que son los valores 'ccc' y 'ddd' ?? para insertar datos lee este artículo:
http://www.aspfacil.com/articulos/tododb.asp

Sub Session_OnEnd
Set db_sitio = server.CreateObject("ADODB.connection")
db_sitio.Open application("ruta")
db_sitio.Execute("INSERT INTO tb_usuarios (fecha,ip) VALUES ('ccc','ddd') ")
db_sitio.Close
set db_sitio = nothing
end sub

Te recomiendo eches un vistazo a alguno de los links que te pongo a continuación:

http://www.aspfacil.com/articulos/040401.asp

http://www.aspfacil.com/articulos/210301.asp

http://www.aspfacil.com/articulos/278009.asp

http://www.aspfacil.com/articulos/2808001.asp

Leetelos y dime algo
Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #5 (permalink)  
Antiguo 29/05/2003, 16:43
 
Fecha de Ingreso: junio-2002
Ubicación: Rosario
Mensajes: 230
Antigüedad: 22 años
Puntos: 0
hola, gracias por tu respuesta, ya lei los links que me pasaste, voy a probar tu codigo a ver si funciona, los valores esos son de prueba los use para ver si funcionaban :)

Gracias
__________________
www.enricodev.com.ar
web applications development studio

-- You can be anything you want to be.--
  #6 (permalink)  
Antiguo 29/05/2003, 18:19
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
El codigo que te pase es solo una parte para que vieras mas o menos, concretamente del session_onstart, aun tienes que retocar los otros un pelin.

Anota: El application_OnEnd nunca es utilizado, tiene el significado de "hacer cuando se vaya el ultimo usuario"

Application_OnStart --> Cuando entra el 1º usuario
Session_OnStart --> Cada usuario que entra
Session_OnEnd --> Cada usuario que sale
Application_OnEnd --> Cuando sale el ultimo usuario.

Lo que te interesa realmente a tí, son los session, y quizá applicatioon_onStart para crear alguna variable...

Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #7 (permalink)  
Antiguo 29/05/2003, 19:49
 
Fecha de Ingreso: junio-2002
Ubicación: Rosario
Mensajes: 230
Antigüedad: 22 años
Puntos: 0
gracias, voy a tratar de mejor un poco los codigos y a probar un poco
__________________
www.enricodev.com.ar
web applications development studio

-- You can be anything you want to be.--
  #8 (permalink)  
Antiguo 31/05/2003, 18:52
 
Fecha de Ingreso: junio-2002
Ubicación: Rosario
Mensajes: 230
Antigüedad: 22 años
Puntos: 0
la verdad que probe con todo y nada no funciona ni en mi PC ni en el server :(
__________________
www.enricodev.com.ar
web applications development studio

-- You can be anything you want to be.--
  #9 (permalink)  
Antiguo 31/05/2003, 19:27
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Cuanto hace que realizas ASP?

Mira tutoriales de conexión a Bases de datos y del objeto recordset.
El global.asa es algo complicado.

Saludos.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #10 (permalink)  
Antiguo 02/06/2003, 13:54
 
Fecha de Ingreso: junio-2002
Ubicación: Rosario
Mensajes: 230
Antigüedad: 22 años
Puntos: 0
como 2 años que programo en asp, pero casi nunca uso el global.asa salvo para variables muy especificas, recien ahora me interesa abrir una db en el session on end
__________________
www.enricodev.com.ar
web applications development studio

-- You can be anything you want to be.--
  #11 (permalink)  
Antiguo 02/06/2003, 19:51
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Pues busca algún artículo de global.asa e piensa que usarlo es sencillo.

Si es para la entrada y salida de usuarios, usa sólo el onstart y onend.

La conexión es normal, como en cualquier parte de la web, intenta hacer código sencillo y que sea rapido de ejecutar.

Suerte.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #12 (permalink)  
Antiguo 02/06/2003, 22:23
 
Fecha de Ingreso: junio-2002
Ubicación: Rosario
Mensajes: 230
Antigüedad: 22 años
Puntos: 0
Estimado amigo, he cambiado de server y mi codigo en el onend() funciona a la perfeccion,. no lo hace en mi PC con el IIS 5.01 pero si en el server.

Gracias la ayuda prestada
__________________
www.enricodev.com.ar
web applications development studio

-- You can be anything you want to be.--
  #13 (permalink)  
Antiguo 03/06/2003, 04:14
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Bueno! al final era que yo tenía razón, que en el server funcionaría jejeje..

Me alegro que te funcione, saludos y suerte.
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
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 01:50.