Avatar billede pfp Nybegynder
16. november 2002 - 13:23 Der er 11 kommentarer og
1 løsning

Statistiksystem...

Hej,

Jeg bruger følgende kode i et mini statistik system jeg sidder og pusler med:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../Databaser/Statistik.mdb")
Conn.Open DSN

If Request.Cookies("Aktiv") = "" then
    Response.Cookies("Aktiv") = "hit"
    Response.Cookies("Aktiv").Expires = Date()+1
   
SQL = "INSERT INTO Statistik (IP, Browser, Sprog, Referent, Host, Tidspunkt)"
SQL = SQL & " VALUES ("
SQL = SQL & "'" & Request.ServerVariables("REMOTE_ADDR") & "', "
SQL = SQL & "'" & Request.ServerVariables("HTTP_USER_AGENT") & "', "
SQL = SQL & "'" & Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") & "', "
SQL = SQL & "'" & Request.ServerVariables("HTTP_REFERER") & "', "
SQL = SQL & "'" & Request.ServerVariables("HTTP_HOST") & "', "
SQL = SQL & "#" & Now() & "#"
SQL = SQL & ")"

Conn.Execute(SQL)
End if
Response.Redirect("Default.asp")
%>

Men nogen gang sker det at der kommer en HTTP 500 fejl. Det kunne måske være fordi der ikke lige kunne opnåes kontakt til databasen. Derfor tænkte jeg om man ikke kunne lave noget med On Error Resume Next, sådan at man undgår den fejl side.

Hvis det kan bruges hvor skal det så placeres i min kode?
Avatar billede kaz911 Nybegynder
16. november 2002 - 13:33 #1
Det er ikke nogen god ide at lægge live stats ind direkte i SQL server, med mindre du har MEGET lidt trafik - eller din SQL server ikke laver andet end at være SQL server.

Den eneste måde du kan få lidt fejltolerance - er ved at bruge Message Queue, som tillader man "poster" til databasen uden at vente på response.

mvh

Kaz
Avatar billede pfp Nybegynder
16. november 2002 - 13:57 #2
Hej Kaz,

Glemte at skrive at det er på en Access db.
Avatar billede kaz911 Nybegynder
16. november 2002 - 14:59 #3
ups - det ku' jeg jo selv have læst... ;-) stat*.mdb

hmm så tror jeg du har et andet problem. Hver gang du indsætter data i Access, laver den sikkert en "table-lock" - så der ikke er andre der kan indsætte på samme tid. Det betyder at hvis 2 personer kikker på en side samtidig (eller næsten samtidig) så kokser det fordi den første "låser" tabellen - så nr. 2 får access denied.

Den sikreste måde er vist nok (her er jeg ikke en ekspert) - at lave en COM component - hvor du giver den din stats data - og så sørger den for at indsætte dem i din database.

Men det er stadig en "dårlig" løsning efter min mening ;-)

Men læs den her artikel : http://www.aspalliance.com/PeterJohnson/JetAdvice.aspx

Jeg vil anbefale dig at bruge MSDE som er en gratis version af en "micro MS sql" server i stedet for Access.

Mvh

Kaz
Avatar billede pfp Nybegynder
16. november 2002 - 15:34 #4
Kaz -> MSDE, kan jeg anvende det på et alm. web-hotel?
Avatar billede kaz911 Nybegynder
16. november 2002 - 15:50 #5
? hmm det ved jeg ikke - det er jo op til din provider.. ;-) men sikkert ikke. ;-(

Men i artiklen førnævnt, skriver han også om hvordan du kan optimerer dit .jet (access) til at håndtere lidt mere. Der er et par eksempler på hvordan man kan optimere til multi-person skrive access.

mvh

Kaz
Avatar billede pfp Nybegynder
16. november 2002 - 17:19 #6
Okay, nu har jeg optimeret koden en smule. Men kan man ikke anvende On Error Resume Next sådan, at man bare slipper for fejlen. Det gør ikke noget at den bruger, som så ellers ville have givet fejl ikke bliver talt med i statistiken.
Avatar billede kaz911 Nybegynder
16. november 2002 - 17:26 #7
held og lykke ! ,-)
Avatar billede pfp Nybegynder
16. november 2002 - 19:07 #8
Tak for hjælpen!
Avatar billede pfp Nybegynder
16. november 2002 - 19:07 #9
Læg et svar så får du point
Avatar billede kaz911 Nybegynder
16. november 2002 - 19:25 #10
;-) takker
Avatar billede kaz911 Nybegynder
16. november 2002 - 19:25 #11
ups - der var et svar ;-)
Avatar billede pfp Nybegynder
17. november 2002 - 00:50 #12
Hej igen,

Jeg har oprettet http://www.eksperten.dk/spm/284095

Som du kan se i oersteds indlæg har han fået en eller anden mystisk fejl. Ved du hvad fejlen betyder og hvordan jeg kan forhindre fejlen?
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