Avatar billede luzk Nybegynder
20. juni 2002 - 20:43 Der er 18 kommentarer og
1 løsning

min global.asa virker ikke

Hejsa

jeg har nu bakset med et problem længe, som jeg håber folk kan hjælpe med. Jeg ønsker at fjerne folk fra min database når deres session timer ud, men det virker åbenbart ikke felt.

min folder struktur er følgende
hovedmappe
|--wwwroot <--global.asa ligger her
|--db <--databasen ligger her

min global.asa ser således ud:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnEnd
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../db/database.mdb")
Set cn = Server.CreateObject("ADODB.Connection")

cn.Open strDSN
cn.Execute("DELETE * FROM tabel WHERE Navn = '" & Session("Navn") & "'")
cn.Close

Set cn = Nothing
End Sub
</SCRIPT>

det underlige er, at det virker, hvis jeg ændrer det til Session_OnStart istedet, så for mig giver det ingen mening...
Avatar billede askhoej Praktikant
20. juni 2002 - 21:20 #1
Prøv at ligge din global.ass fil i applikations bibliotek i stedet for wwwroot.

f.eks.

c:\inetpub\wwwroot\din_applikation

Din global.asa fil ser ud til at være i orden

/Askhoej
Avatar billede eagleeye Praktikant
20. juni 2002 - 21:48 #2
Du kan ikke bruge Server.MapPath i Session_OnEnd function.. Du skal skrive den rigtige sti til databasen:

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\wwwroot\db\database.mdb"
Avatar billede tmceu Praktikant
20. juni 2002 - 21:54 #3
Det er en udbredt holdning i mange udenlandske forums, at man ikke kan anvende Access databaser i Session_OnEnd. Jeg har lavet min egen test efter at have læst en masse om det og min konklusion er, at det ikke virker med Access, mens der eks. aldrig er problemer med MySQL og SQL Server.

P.S. Hver gang jeg skriver dette, kommer der en eller anden og fortæller at det virker hos ham/hende, men min konklusion er at det ikke virker - eller i hvert tilfælde kun under meget bestemte forhold.
Avatar billede luzk Nybegynder
21. juni 2002 - 08:10 #4
askhoej: det har jeg nu prøvet, og det gjorde at jeg ikke kunne benytte hverken onEnd eller onStart, så jeg går ud fra den har ligget det rigtige sted
Avatar billede luzk Nybegynder
21. juni 2002 - 08:11 #5
eagleeye: det virker desværre heller ikke, stadig kun ved onStart
Avatar billede luzk Nybegynder
21. juni 2002 - 08:11 #6
tmceu: jeg tror tildels du har ret, men jeg kan ikke forstå hvorfor det virker med onStart og ikke onEnd
Avatar billede luzk Nybegynder
21. juni 2002 - 08:12 #7
tmceu: ved du om der er problemer med MySQL??
Avatar billede luzk Nybegynder
21. juni 2002 - 08:26 #8
ups - den sidste sisdte kommentar jeg skrev var der jo svaret på - må lære at læse :o)
Avatar billede eagleeye Praktikant
21. juni 2002 - 09:55 #9
Jeg vil give tmceu at det god kan være et problemmer med Access, et gæt kunne være at Access ikke er en server som MySQL og SQL Server er, men det er kun gætverk og jeg kan ikke lige finde bevis for det.

Jeg karn dog finde mange steder hvor de skriver at server.Mappath ikke virker i OnEnd functionen.

Link til en som har lave en Access i OnStart og OnEnd, måske det kan give lidt inspiration:
http://www.bann.co.uk/asp/global/connections.asp
Avatar billede tmceu Praktikant
21. juni 2002 - 10:50 #10
Der er et generelt problem med Session_OnEnd i IIS4 som efter sigende skulle være løst i IIS5 og jeg har endnu ikke oplevet eller hørt, at det ikke skulle være løst.

Problemet er, at Session_OnEnd kun kører i 95-97% af de tilfælde hvor sessionen timer ud, dvs. når der ikke laves en eksplicit end af en session med Session.Abandon.

Uanset hvilken database man anvender, vil man selvfølgelig være underlagt denne begrænsning (bug) på IIS4, men ellers virker det 100% med MySQL og SQL Server og sandsynligvis også med øvrige rigtige database servere som eks. Oracle.

Den eneste årsag jeg har kunnet finde på er som eagleeye også nævner, at Access ikke er en server applikation, men en fil-baseret database. Men som sagt findes der nogle som har held med at anvende Access.
Avatar billede musicchart.dk Nybegynder
21. juni 2002 - 15:02 #11
Undskyld jeg forstyrre... men er der nogen der har fået den her: http://www.bann.co.uk/asp/global/connections.asp , til at virker. Fordi det kan jeg ikke...

/Bjarke - (KLEIFDESIGN)
Avatar billede eagleeye Praktikant
21. juni 2002 - 15:32 #12
Nej ikke lige nu, det virkede ellers i formiddags, prøv evt lidt senere. Det var også for at vise at det er et kendt problem med server.mappath i Session_OnEnd funcionen.
Avatar billede musicchart.dk Nybegynder
21. juni 2002 - 15:52 #13
jo... men jeg kan slet ikke få den til at virke... jeg har prøvet i næsten en måned nu, for at får det til at fungere, at man kan se hvem der er online, ligesom ved: http://www.bann.co.uk/asp/global/connections.asp , men kan stadig ikke få det til at fungere... er ved at blive sindssyg over det, fordi det er det eneste der mangler på mit site...
Avatar billede luzk Nybegynder
21. juni 2002 - 17:31 #14
tmceu: hvis du smider et svar får du pointene

takker for hjælpen...
Avatar billede tmceu Praktikant
21. juni 2002 - 17:36 #15
OK :-)
Avatar billede tmceu Praktikant
21. juni 2002 - 17:42 #16
Og det var så lidt :-)
Avatar billede luzk Nybegynder
24. juni 2002 - 15:52 #17
Well - det var en god hjælp - nu ved jeg da i det mindste hvad jeg skal gøre for at komme videre - desværre konvertere hele DB'en samt scripts til MySQL - sQ jeg nok have gjort fra starten :o)
Avatar billede tmceu Praktikant
24. juni 2002 - 21:00 #18
Jeg tror ikke at du kommer til at fortryde skiftet. Mange ting virker meget bedre med en ægte database :-)
Avatar billede luzk Nybegynder
25. juni 2002 - 07:56 #19
tmceu: naeh - tror du har ret - well, hvis jeg havde råd blev det MSSQL istedet - stored procedures tiltaler mig en del *s*
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester