Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Aggiornamento campo con codice random

    Ciao!

    Ho una tabella utenti, contenente diversi campi, tipo: nome, cognome, email, ecc.

    Visto che questa tabella rappresenta i membri di una newsletter, vorrei poter permettere ad ognuno di cancellarsi autonomamente.

    In ogni newsletter, in fondo, metto il link alla pagina "cancellami", in questo modo:
    cancellami.asp?id=idutente&email=emailutente&GUID= guidutente

    Pensavo di inserire questo campo GUID (Globally Unique Identifier) all'interno della tabella utenti.

    Per i nuovi utenti che si iscrivono, non ci sono problemi: al momento dell'iscrizione, faccio "produrre" questo codice random e lo inserisco nel db nel nuovo record.

    Il mio problema è aggiornare la tabella esistente. Ho fatto diverse prove, ma non sono riuscito a far "produrre" un codice diverso per ogni utente: mi inserisce sempre lo stesso codice.

    Il GUID lo creo così:
    codice:
    GUID = Server.CreateObject("Scriptlet.Typelib").GUID
    Visto che il risultato mi viene mostrato tra parentesi graffe, per toglierle, faccio così:
    codice:
    guid1 = Right(guid,39)
    guid2 = Left(guid1, 36)
    Il mio codice, senza parentesi, è guid2.

    Già qui ho un dubbio: esiste il modo di fare creare un codice senza parentesi?



    Seleziono i record dove il campo GUID è = 0. Mi restituisce tutta la tabella, ovviamente.
    codice:
    Sql = "SELECT * FROM iscrizione WHERE GUID =0"
    Set RS = Conn.Execute(Sql)

    Per aggiornare i dati, ho usato questo codice:
    codice:
    WHILE NOT RS.EOF
    
    SqlString = "UPDATE iscrizione SET GUID='"& guid2 & "' "
    Conn.Execute SqlString
    
    RS.MoveNext
    WEND
    Qualche suggerimento?

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    In parte ho risolto così:
    codice:
    sql = "SELECT * FROM iscrizione WHERE GUID=0 LIMIT 1"
    set rs = conn.execute(sql)
    
    Do While Not RS.Eof
    GUID = Server.CreateObject("Scriptlet.Typelib").GUID
    minuscolo = lcase(guid)
    guid1 = Right(minuscolo,39)
    guid2 = Left(guid1, 36)
    
    SqlString = "UPDATE iscrizione SET GUID='"& guid2 & "' WHERE GUID=0 LIMIT 1"
    Conn.Execute SqlString
    Loop
    RS.Close
    Set RS = Nothing
    Il problema adesso è che il db contiene oltre 20.000 record e la pagina, dopo un po', mi dice "The maximum amount of time for a script to execute was exceeded".
    Ho controllato nel db e ho visto che i dati vengono correttamente aggiornati.

    Quello che faccio è ricare la pagina che aggiorna i dati, ma non mi sembra un granché come cosa.

    Qualche idea per far girare questo script "da solo", senza doverlo rilanciare ogni volta che va in time out?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Qualche idea???

    Grazie!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Niente?

  5. #5
    essendo una cosa che devi fare un unam tantum, aumenta di parecchio lo scriptTimeOut, lancia lo script, aggiorna il db e hai fatto

    dov'è il problema?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Ok, grazie per la risposta.

    Il timeout dello script lo modifico con questo codice:
    codice:
    Server.ScriptTimeOut = x
    Con x indico i secondi.

    Secondo te, a quanto dovrei alzare il timeout per fargli processare tutto lo script per oltre 20.000 record?

  7. #7
    boh...una 20na di secondi? che so prova....
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2026 vBulletin Solutions, Inc. All rights reserved.