Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304

    cancella record semplice

    Ciao a tutti!
    Premesso che sono un neofita, sto cercando di capire come cancellare un record da db.
    Una delle varie pagine mi da la possibilità di cancellare un'iscrizione, inserendo user e password. Dopo averle inserite, clicco su invia. L'action di questo form è verso la pagina di cancellazione.
    Nella pagina che restituisce la cancellazione con un messaggio di conferma, ho inserito questo codice:

    <%
    dim username, password
    username = request.form ("username")
    password = request.Form("password")
    sqlCancella = "DELETE * FROM Sicurezza "
    sqlCancella = sqlCancella & "WHERE User='"&username&"' and Password='"&password&"' "
    conn.execute (sqlCancella)

    %>
    dove User e Password sono i campi del db, username e password sono i valori inseriti nel form.

    Ovviamente non cancella nulla. Cosa sbaglio? Si possono concatenare le variabili nella condizione WHERE come ho fatto io? Chissà che stupidaggine..

  2. #2
    Vedo uno spazio bianco dove metti la condizione della password tra l'apice doppio e l'apice singolo di chiusura . . .


  3. #3
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    lo spazio finale tra l'apice singolo ed il doppio di chiusura non è causa di errori

    ti restituisce eventuali messaggi di errore?

    prova così:
    codice:
    username = request.form ("username")
    password = request.form("password")
    
    ' la conn devi averla in qualche modo, prima cmq ce l'avevi
    ' quindi non dovrebbe cambiare nulla per la connesisone al db
    set rs = Server.CreateObject("ADODB.Recordset")
    sql = "SELECT TOP 1 * FROM Sicurezza WHERE User='" & username & "' AND Password='" & password & "'"
    rs.open sql, conn, 3, 3
    if not rs.EOF then
         rs.delete
         response.write("Utente eliminato!")
    else
         response.write("Utente NON eliminato, nessuna occorrenza trovata!")
    end if
    rs.close
    set rs = nothing
    conn.close
    set conn = nothing
    ho mesos un top 1 nella select, andava anche bene lasciare solo *, ma solo nel caso in cui la coppia username-password sia univoca per ogni occorrenza

  4. #4
    Originariamente inviato da Fichico
    lo spazio finale tra l'apice singolo ed il doppio di chiusura non è causa di errori
    Io son sicuro del contrario

    Vediamo chi ha ragione . . .

  5. #5
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    niente, non funziona con nessuna delle due correzioni..
    la connessioe al db è in un'altro file incluso con include nelle due pagine..
    togliendo solo lo spazio non mi da errori ma non cancella comunque..
    usando invece il codice che mi ha suggerito fichico, mi da il risultato "utente non cancellato, nessuna occorrenza trovata", cioè la seconda istruzione di IF. Eppure nel db c'è..sicuro..
    non riesco a capire..

  6. #6
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    se ti dice nessun utente ecc ecc vuol dire che non c'è un occorrenza che soddisfa il criterio della clausola where dell'sql ...
    quindi ..controllerei bene direttamente il db :P

  7. #7
    Domanda: la form è con method="post" ?
    Prova questo tuo codice modificato per il debug:
    codice:
    <% 
    dim username, password 
    username = request.form ("username") 
    password = request.Form("password") 
    sqlCancella = "DELETE * FROM Sicurezza " 
    sqlCancella = sqlCancella & "WHERE User='"&username&"' and Password='"&password&"' " 
    response.write sqlCancella
    response.end
    conn.execute (sqlCancella) 
    
    %>

  8. #8
    Vorrei fare una piccola aggiunta:

    codice:
    <% 
    dim username, password 
    username = request.form ("username") 
    password = request.Form("password") 
    sqlCancella = "DELETE * FROM Sicurezza " 
    sqlCancella = sqlCancella & "WHERE User='"&username&"' and [Password]='"&password&"' " 
    response.write sqlCancella
    response.end
    conn.execute (sqlCancella) 
    %>
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  9. #9
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    allora, ho fatto quel che mi avete consigliato gentilmente. Ho inserito quei due response, e ora mi stampa a video la sqlCancella. Ho provato a cambiare il metodo del form, da get originario a post. Nulla di fatto. Mi potete anche spiegare il perchè delle modifiche che mi avete consigliato? Sto imparando, mi farebbe molto bene..
    Comunque allegherei volentieri la cartella zippata, sono pochi kb..
    P.s.: ho notato una cosa: quando inserisco i dati e provo a cancellare, l'unica modifica che il db subisce è l'inserimento di un nuovo record vuoto col contatore che ovviamente aumenta di uno..

  10. #10
    La delete che ti viene stampata a video, prova ad eseguirla direttamente su Access, per vedere se funziona.
    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.