Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304

    errore query per cdosys

    Ciao a tutti!
    Sto testando cdosys con un'applicazione che prevede, per la registrazione di un utente, l'invio dell'e-mail con relativo link da cliccare per la conferma.
    All'attivazione del link, nel db inserisco un valore nel campo di "conferma" del record dell'utente. In pratica voglio inserire il valore ok solo nel record che la cui e-mail è uguale a quella dell'utente.
    So di sbagliare la query che inserisce un valore in un campo del record dell'utente - campo conferma tipo testo - mi dareste un suggerimento?
    Questo il codice della query:

    sqlConferma = "Insert into Inserzionisti('conferma') Values ('ok') WHERE mail=' " & mail
    Rs.open sqlConferma, objConn

    Lo so, per la logica di sql, INSERT non prevede la clausola WHERE...
    Spero di essermi spiegato bene, anche se credo ci siate passati anche voi
    Grazie!!!

  2. #2
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Secondo me stai sbagliando approccio al problema:

    1) Al momento in cui registri l'utente, in un campo del tuo db che chiamerai "attivazione" fai scrivere un codice alfanumerico che inserisci nel link di conferma, tipo:

    codice:
    http://www.tuapaginaweb/attivazione.asp?ID=F343D4E2DB217DC418ED
    2) Al momento in cui l'utente clicca sul link che riceve via email, ecco che richiama la pagina attivazione.asp:

    codice:
    <% 
    
    Set adoCon = Server.CreateObject("ADODB.Connection")
    OpenStr = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("/mdb/database.mdb")
    adoCon.open OpenStr
    
    Set rsCommon = Server.CreateObject("ADODB.Recordset")
    
    blnActivated = false
    
    strAttivazione = Trim(Mid(Request.QueryString("ID"), 1, 22)) 
    
    	strSQL = "SELECT * FROM tbl_iscritti WHERE Attivazione = '" & strAttivazione & "' "
    	adoCon.execute(strSQL)
    	
    	If NOT strAttivazione = "" Then
    	
    	strSQL = "UPDATE tbl_iscritti SET Utente_attivo=True WHERE Attivazione = '" & strAttivazione & "' "
    	adoCon.execute(strSQL)
    	
        sSQL = "SELECT * FROM tbl_iscritti WHERE Attivazione = '" & strAttivazione & "' " 
        Set rsCommon = Server.CreateObject("ADODB.Recordset") 
        rsCommon.Open sSQL, OpenStr, 3, 3 
    	
    		blnActivated = true
    
    'CODICE CDOSYS PER INVIO EMAIL
    .....
    
    rsCommon.Close
    Set rsCommon = Nothing
    adoCon.Close
    Set adoCon = Nothing  
    end if
    
    %>
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  3. #3
    Insert = crea nuovo record (detto in soldoni) non inserisci in un campo solo di un record preesistente

    Update è quello che ti serve a te:

    codice:
    update campo=valore where identificativo=id_passato

  4. #4
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    ok, ho modificato in questo modo:

    set Rs = server.CreateObject("ADODB.recordset")
    sqlConferma = "UPDATE Inserzionisti SET conferma=ok WHERE mail= " & mail
    Rs.open sqlConferma, objConn -----> linea 18

    mi da questo errore:

    Microsoft JET Database Engine error '80040e14'

    Missing semicolon ( at end of SQL statement.

    /script_conferma.asp, line 18

    cosa sbaglio?

  5. #5
    Originariamente inviato da Renyp
    ok, ho modificato in questo modo:

    set Rs = server.CreateObject("ADODB.recordset")
    sqlConferma = "UPDATE Inserzionisti SET conferma=ok WHERE mail= " & mail
    Rs.open sqlConferma, objConn -----> linea 18

    mi da questo errore:

    Microsoft JET Database Engine error '80040e14'

    Missing semicolon ( at end of SQL statement.

    /script_conferma.asp, line 18

    cosa sbaglio?
    Con l'UPDATE perchè usi il recordset?
    Usa objConn.Execute(strSQL)
    Sono fermamente convinto che sia possibile fare ogni cosa. Tutto sta a capire come.

  6. #6
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    ho corretto così:

    sqlConferma = "UPDATE Inserzionisti SET conferma = ok WHERE mail= " & mail
    objConn.Execute(sqlConferma) ----> linea 18

    l'errore è:

    Microsoft JET Database Engine error '80040e14'

    Syntax error (missing operator) in query expression 'mail= ilrossomalpelo@hotmail.com'.

    /script_conferma.asp, line 18

    stesso errore se provo la query direttamente su db...

  7. #7
    attenzione ai campi di tipo testo
    i suddeti vanno marcati da apici 'xxx'
    segui bene gli esempi indicati nei post precedenti
    byluciani.com - Soluzioni ASP/VBScript freeware

    bylucianiUpload 2.0

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.