Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Aggiornare 65.000 records in una sola volta

    Ciao, vorrei un vs. consilgio sulla questione seguente:

    ho una tabella con i campi: ID, IPVisitatore, DataVisita e una nuova colonna chiamata IpProvenienza che ho inserito stasera.

    Il db è mysql; nella tabella visite al momento ci sono circa 65.000 records dei quali soltanto gli ultimi 2 hanno il campo IpProvenienza regolarmente compilato, perchè solo stasera ho aggiunto la nuova colonna.

    Come posso fare per far aggiornare in automatico inserendo l'IpProvenienza anche per i records rimanenti cioè 65.000 - 2 ?

    Grazie

  2. #2
    in access una cosa del genere funzionerebbe (me pare )

    codice:
    
    update Tabella set IpProvenienza=????? where (id<>..... and id<>....)
    dove al posto dei ???? ci va o un valore o un nome del campo e i due id che devi escludere sono quelli che stanno a posto

    che fai provi e mi fai sapere? VVoVe:

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Grazie, ma non ti seguo... a parte che il db è mysql... :master:

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Aggiornare ok, ma con che valore???

    Roby

  5. #5
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Un valore che estraggo così dalla tabella generale degli ip:

    codice:
    ipvisitatore = request.servervariables("remote_addr")
    
    numb_ip = split(ipvisitatore, ".")  
    A = numb_ip(0)
    B = numb_ip(1)
    C = numb_ip(2)
    D = numb_ip(3)
    E = A * (256*256*256)
    F = B * (256*256)
    G = C * (256)
    H = D
    IPNumb = (E + F + G + H)
    
    Set oRS = objconn.Execute("SELECT * FROM tbl_ip WHERE IP_FROM <= "& IPNumb &" and IP_TO >= "& IPNumb &"")
    IPAdd = oRS.Fields("COUNTRY_NAME")

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    sql = "update Tabella set IpProvenienza='"& IPAdd &"' where (id<>1 and id<>2)"

    Roby

  7. #7
    Originariamente inviato da wegawhite
    Grazie, ma non ti seguo... a parte che il db è mysql... :master:

    vabbeh ma mica avevo scritto chissà cosa

  8. #8
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da santino83_11_04
    vabbeh ma mica avevo scritto chissà cosa
    Non volevo offenderti...

    Il metodo di roby va bene, ma se fisso un ip... dovrei invece scorrere tutti gli ip già caricati nella tabella sessioni...

    cioè così va bene:

    codice:
    IP_Address = "xx.xxx.xx.xxx"
    
    number_ip = split(IP_Address, ".")  
    
    A = number_ip(0)
    B = number_ip(1)
    C = number_ip(2)
    D = number_ip(3)
    
    E = A * (256*256*256)
    F = B * (256*256)
    G = C * (256)
    H = D
    
    IP_Number = (E + F + G + H)
    
    Set oRS = objConn.Execute("SELECT * FROM tbl_ip WHERE IP_FROM <= "& IP_Number &" and IP_TO >= "& IP_Number &"")
    IPAdd = oRS.Fields("COUNTRY_NAME")
    
    sql = "update tbl_sessioni set Visitproven = '"& IPAdd &"' where VisitProven IS NULL"
    Set RS = objConn.Execute(sql)

  9. #9
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Avrei fatto così:

    codice:
    Set RS = Server.CreateObject("ADODB.Recordset")
    sql = " select VisitorIP from tbl_sessioni where VisitProven = ''"
    RS.Open sql, objConn, 3, 3
    
    Do While NOT RS.EOF
    
    IP_Address = RS("VisitorIP")
    
    response.write ip_address &"
    "
    
    number_ip = split(IP_Address, ".")  
    
    A = number_ip(0)
    B = number_ip(1)
    C = number_ip(2)
    D = number_ip(3)
    
    E = A * (256*256*256)
    F = B * (256*256)
    G = C * (256)
    H = D
    
    IP_Number = (E + F + G + H)
    
    response.write ip_number &"
    "
    
    Set oRS = objConn.Execute("SELECT * FROM tbl_ip WHERE IP_FROM <= "& IP_Number &" and IP_TO >= "& IP_Number &"")
    IPAdd = oRS.Fields("COUNTRY_NAME")   
    
    sql = "update tbl_sessioni set Visitproven = '"& IPAdd &"' where VisitProven IS NULL"
    objConn.Execute(sql)
    
    RS.MoveNext
    Loop
    
    rs.Close
    set rs = Nothing
    
    objConn.Close
    set objConn = Nothing
    Errore sulla riga rossa:

    Tipo di errore:
    ADODB.Field (0x800A0BCD)
    Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente.


  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Testa che il recordset contenga qualcosa...

    Roby

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.