ciao e grazie di avermi risposto.
Questo è il codice della sesion onStart del global.asa
Sub Session_OnStart
'la sessione scade dopo 20 minuti di inattività
Session.TimeOut = 20
'add 1 to the users when someone enters for the first time
Application.Lock
Application("CurrentUsers") = Application("CurrentUsers") + 1
Application.Unlock
'#### START --- COUNTER **********
Dim DBName, objConn, objRS, strSQL, strSQL1, objRS1
'Setto i visitatori a 1 nel caso il DB sia vuoto
'(e quindi Primo accesso)
Application("vis_day") = 1
Application("vis_tot") = 1
'percorso e nome del DB
DBName = server.MapPath("/mdb-database/db_accessi.mdb")
'Response.Write DBName
'Create ADO connection
Set objConn = Server.CreateObject("ADODB.Connection")
'Open our user database with this string
'Access our database
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBName
'Recordset che va a cercare il record corrispondente al giorno
Set objRS = Server.CreateObject("ADODB.Recordset")'Creato un recordset
'strSQL = "SELECT * FROM tab_statistiche WHERE lastlogin='" & cstr(date()) & "' ORDER BY lastlogin;"
strSQL = "SELECT * FROM tab_statistiche ORDER BY lastlogin;"
'Debug
'Response.Write strSQL
objRS.Open strSQL, objConn, 3, 3
'Se il n° dei record è 0, non c'è nessun record
'quindi si tratta del primo visitatore in assoluto
If objRS.RecordCount = 0 Then
'Recordset che va a cercare il record corrispondente al giorno
Set objRS1 = Server.CreateObject("ADODB.Recordset")'Creato un recordset
strSQL1 = "INSERT INTO tab_statistiche (lastlogin, counter_day, counter_tot) VALUES (#" & date() &"#, " & cint(Application("vis_day")) & ", " & cint(Application("vis_tot")) & ");"
objRS1.open strSQL1, objConn, 3, 3
Set objRS1 = nothing
Else'se ci sono record
'muovo all'ultimo record
'anche se in teoria non ce ne sarebbe bisogno
objRS.MoveLast
'Application("vis_tot") assume il valore del totale dei visitatori + 1
Application("vis_tot") = cint(objRS.Fields("counter_tot")) + 1
'Se esiste già il record del giorno allora
'If cstr(objRS.Fields("lastlogin")) = cstr(date()) then
If objRS.Fields("lastlogin") = date() then
'Application("vis_tot") assume il valore del totale dei visitatori + 1
Application("vis_tot") = cint(objRS.Fields("counter_tot")) + 1
'Application("vis_day") assume il valore del totale dei visitatori di oggi + 1
Application("vis_day") = cint(objRS.Fields("counter_day")) + 1
Set objRS1 = Server.CreateObject("ADODB.Recordset")'Creato un recordset
strSQL1 = "UPDATE tab_statistiche SET counter_day = " & cint(Application("vis_day")) & ", counter_tot = " & cint(Application("vis_tot")) & " WHERE lastlogin = #" & date() & "#;"
objRS1.Open strSQL1, objConn, 3, 3
Set objRS1 = nothing
'objRS1.open strSQL, objConn, 3, 3
'objRS1.close
'Set objRS1 = nothing
Else
Set objRS1 = Server.CreateObject("ADODB.Recordset")'Creato un recordset
strSQL1 = "INSERT INTO tab_statistiche (lastlogin, counter_day, counter_tot) VALUES (#" & date() &"#, " & cint(1) & ", " & cint(Application("vis_tot")) & ");"
objRS1.open strSQL1, objConn, 3, 3
Set objRS1 = nothing
End If
'update dei valoti inseriti
'objRS.update
End If
'***** INIZIO Chiudo il recordset e la connessione ***********
objRS.close 'chiudo l'oggetto recordset *
set objRS = nothing 'Uccido l'oggetto recordset *
objConn.close 'chiudo la connessione al DB *
set objConn = nothing 'Uccido la connessione al DB *
'***** FINE Chiudo il recordset e la connessione *************
'#### END --- COUNTER **********
End Sub
In che senso "ci mette pure le connessioni al db"?
Devo mettere perforza la connessione al db altrimenti come faccio ad aggiornare gli accessi?
Grazie..?
Modificato da enigma il 21 gennaio 2005 09.36 -