11. juni 2002 - 13:51Der er
21 kommentarer og 1 løsning
Hvordan?
Jeg har det her Online-users-system, som når man logger ind, sætter brugerStatus i tabellen bruger til 'online' - men hvis man nu IKKE klikker på logout.asp, så bliver den ved med at tælle en som online - hvad gør jeg? En bekendt mente, at jeg skulle bruge noget global.asa?????
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Ja det er meget fint, men for at det skal få nogen effekt i databasen, skal du lave en funktion i global.asa's Session_OnEnd, men hvis det er en Access database, kan du efter min mening glemme alt
gangster >> så er du en af de heldige :-) i livet uden for Eksperten, er det almindeligt kendt, at der er store problemer med at anvende Access databaser i Session_OnEnd, uanset om det er DSN eller DSN-less og uanset om det er 97, 2000 og 2002. Der er til gengæld aldrig problemer med eks. MySQL og SQL Server.
Jeg har lavet min egen uvidenskabelige test baseret på mange af de problemer jeg har læst om med dette og har aldrig fået Access til at virke, hvorimod der aldrig er problemer med de øvrige.
Til det sidste skal det dog bemærkes, at der på IIS4 er et generelt problem med Session_OnEnd, da den kun kører i 95-97% af de tilfælde hvor sessionen timer ud. Dette skulle eftersigende være løst i IIS5 og jeg har endnu aldrig oplevet, at det ikke skulle være løst.
Læg mærke til, at jeg skriver "efter min mening", for i denne IT verden, er der aldrig nogen regel uden undtagelse, så jeg har lært ikke ret tit at sige "det KAN ikke lade sig gøre".
Men som sagt, mine personlige erfaringer sammenholdt med hvad der sker "ude i verden", får mig til at konkludere at man ikke skal satse hele butikken på at det virker.
Min global.asa: <script language="vbscript" runat="server"> Sub Session_OnStart Session.Timeout = 10 end Sub
Sub Session_OnEnd set myConn = Server.CreateObject("ADODB.Connection") conStr = "DRIVER={Microsoft Access Driver (*.mdb)};" conStr = conStr & "DBQ=f:\din\mappe\din_database.mdb"
myConn.Open conStr SQL = "update users set status = 'offline' where name = '"&session("Name")&"' myConn.execute(SQL) myConn.Close set myConn = Nothing End Sub </script>
Jeg brugte lige dit script, og fandt ud af, at du mangler en " til sidst i din db-connection, men nu BURDE det fungere... vent lige 10 min., og så ser jeg om det funker! :D
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.