Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    come non reinserire lo stesso campo nel db

    codice:
    ho una tabella con tre campi
    User_Enter  UserDate UserIP
    
    e uso questo script per monitorare gli accessi
    
    ora però se uno entra due volte in questa pagina mi scrive il record 2 volte..
    come posso evitare che mi scriva due volte il record con lo stesso ip... a me interessa solo la traccia non il numero di volte quindi vorrei che me lo scrivesse una sola volta
    User 8/01/2005 6:20  213.13.1.4.
    <%
    sql="Select * from monitor"
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("datab.mdb")
    
    			Set rs=Server.CreateObject("ADODB.RecordSet")
    
    				rs.Open sql,Conn,3,3
    				rs.addNew()
    				rs("UserEnter")=Session("User")
    				rs("UserDate")=Now()
    				rs("UserIP")=Request.ServerVariables("REMOTE_ADDR")
    				rs.update
    
    
    rs.Close
    Set rs = Nothing
    Conn.Close
    Set Conn = Nothing
    %>
    
    grazie
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2
    Prima di questa:

    codice:
    rs.Open sql,Conn,3,3
    				rs.addNew()
    				rs("UserEnter")=Session("User")
    				rs("UserDate")=Now()
    				rs("UserIP")=Request.ServerVariables("REMOTE_ADDR")
    				rs.update
    Interroga la tabella mediante la sua chiave primaria.

    Se trova il record gli fare dare un messaggio che non può inserire record già presenti, altrimenti procedi con l'inserimento.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    scusa l'ignoranza...ma come? :master:
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  4. #4
    codice:
    "Select * from tabella_su_cui_inserisci where Id_campo_progressivo = " & valore
    
    if rs.eof then
       rs.addNew()
       rs("UserEnter")=Session("User")
       rs("UserDate")=Now()
       rs("UserIP")=Request.ServerVariables("REMOTE_ADDR")
       rs.update
    else
       response.write("record già presente")
    end if
    Valore = chiave primaria della tua tabella. Ovviamente te lo devi determinare in base alla logica della tua pagina.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    codice:
    <%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("../db/monitor.mdb")
    Set rs=Server.CreateObject("ADODB.RecordSet")
    sql="Select * from Monitor where Id=" & Id
    
    if rs.eof then
       rs.addNew()
       rs("UserEnter")=Session("User")
       rs("UserDate")=Now()
       rs("UserIP")=Request.ServerVariables("REMOTE_ADDR")
       rs.update
    else
       response.write("record già presente")
    end if
    
    
    rs.Close
    Set rs = Nothing
    Conn.Close
    Set Conn = Nothing
    %>
    mi da quest errore
    ADODB.Recordset error '800a0e78'

    Operation is not allowed when the object is closed.

    /bbart/monitoraggio2.asp, line 7
    :master:
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  6. #6
    Connessione e recordset devono essere aperti!
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

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.