Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di osgb
    Registrato dal
    May 2004
    residenza
    Monza
    Messaggi
    179

    Aiuto per connessione dns_less (per contatore pagine)

    Ho scopiazzato questo script per contare le volte che visitano le pagine del sito, ma non funziona... Mi da questo errore: ADODB.Recordset (0x800A0E79)
    L'operazione non è consentita se l'oggetto è aperto.

    Il codice è qui sotto... QUALCUNO PUO' AIUTARMI. GRAZIE!

    <%
    ' ----------------------------------------------
    ' CONTATORE VISITE PAGINE
    ' ----------------------------------------------
    ' Imposto il formato della data in gg/mm/aa
    Session.LCID=2057
    Dim Pathcount 'Variabile percorso del database
    Pathcount="../mdb-database/"
    Dim CountConn ' Variabile per oggetto Connection
    Dim CountRS ' Variabile per oggetto Recordset
    Dim CountSQL ' Variabile per query SQL
    Dim CountPagina ' Variabile per indirizzo URL pagina
    Dim CountData ' Variabile per la data di accesso
    Dim CountID ' Variabile per ID
    Dim CountNumVisite ' Variabile per numero visite
    ' Recupero l'indirizzo della pagina rimuovendo eventuali spazi aggiuntivi e trattando il nome solo in minuscolo
    CountPagina = Trim(LCase(Request.ServerVariables("URL")))
    ' Recupero la data attuale
    CountData = Date()

    ' Istanzio l'oggetto Connection
    Set CountConn = Server.CreateObject("ADODB.Connection")
    ' Istanzio l'oggetto Recordset
    Set CountRS = Server.CreateObject("ADODB.Recordset")
    ' Effettuo la query per verificare se nella data odierna, la pagina che ha richiamato il contatore è già stata visitata
    CountSQL = "SELECT Contatore_PAID, Numero_Visite FROM TBL_Contatore WHERE " & "(Data_Accesso = '" & CountData & "') AND " & "(Pagina = '" & CountPagina & "')"

    ' Apro la connessione
    CountConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath(Pathcount&"contatore.mdb")
    ' Apro il recordset effettuando la query
    CountRS.Open CountSQL, CountConn
    If CountRS.EOF and CountRS.BOF then ' Non ci sono dati
    ' Imposto a zero la variabile CountID e CountNumVisite
    CountID = 0
    CountNumVisite = 0
    Else
    ' Recupero il valore del campo Contatore_PAID ed il numero di visite
    ' effettuate per la pagina
    CountID = CountRS.Fields("Contatore_PAID")
    CountNumVisite = CDbl(CountRS.Fields("Numero_Visite"))
    End If
    ' Imposto la query per aggiornare il Database
    If CountID = 0 then ' Prima visita della pagina = Aggiunge il record
    CountSQL = "SELECT * FROM TBL_Contatore WHERE 1 = 0"
    Else ' Pagina già visitata = Recupera i dati
    CountSQL = "SELECT * FROM TBL_Contatore WHERE Contatore_PAID = " & CountID
    End If
    ' Apre il recordset
    CountRS.Open CountSQL, CountConn, 1, 3

    ' Verifica se modificare o aggiungere il record
    If CountID = 0 then ' Aggiunge record
    CountRS.AddNew
    CountRS.Fields("Data_Accesso") = CountData
    CountRS.Fields("Pagina") = CountPagina
    End If
    ' Incremento di un'unità il numero di visite
    CountNumVisite = CountNumVisite + 1
    CountRS.Fields("Numero_Visite") = CountNumVisite

    ' Confermo la modifica e/o aggiunta
    CountRS.Update

    ' Chiudo il recordset
    CountRS.Close
    ' Chiudo la connessione
    CountConn.Close
    ' Distruggo le istanze attive
    Set CountRS = Nothing
    Set CountConn = Nothing
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Hai aperto due volta il recordset

    CountRS.Open

    senza prima averlo chiuso.

    Roby

  3. #3
    Utente di HTML.it L'avatar di osgb
    Registrato dal
    May 2004
    residenza
    Monza
    Messaggi
    179
    Ho provato a chiuderlo, poi riaprirlo, ma non funziona. scrive nel database, ma appena aggiorno la pagina mi da errore.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prima di aprirlo di nuovo devi prima chiuderlo.
    Fai le correzioni e riposta lo script.

    Roby

  5. #5
    aggiungi al tuo codice la parte scritta in rosso

    codice:
    [...]
    CountSQL = "SELECT * FROM TBL_Contatore WHERE 1 = 0"
    Else ' Pagina già visitata = Recupera i dati
    CountSQL = "SELECT * FROM TBL_Contatore WHERE Contatore_PAID = " & CountID
    End If
    
    CountRS.Close
    
    ' Apre il recordset
    CountRS.Open CountSQL, CountConn, 1, 3
    
    ' Verifica se modificare o aggiungere il record
    If CountID = 0 then ' Aggiunge record
    CountRS.AddNew
    CountRS.Fields("Data_Accesso") = CountData
    CountRS.Fields("Pagina") = CountPagina
    End If
    [...]
    ---

    una piccola curiosità

    codice:
     CountSQL = "SELECT * FROM TBL_Contatore WHERE 1 = 0"
    ma che diavolo di nome è "1" per un campo???
    san imente saluta

    * http://simonecingano.it *

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.