Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Modifica dei dati di un database

La modifica di un dato di un database attraverso un modulo HTML è paradossalmente un'operazione filosoficamente più complicata del semplice inserimento, dato che è necessario prima selezionare il record da modificare e poi effettivamente modificarlo.

Segue il codice del file "modifica_autore.asp":

<%@LANGUAGE = VBScript%>
<%
    Dim sc, cn, rs
    sc = "driver={Microsoft Access Driver (*.mdb)};dbq="
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open sc & Server.MapPath("database.mdb")
    Set rs = Server.CreateObject("ADODB.Recordset")
    Dim id
    id = Request.QueryString("id")
%>
<html>
<head>
<title>Modifica un autore</title>
</head>
<body>

<h1>Modifica un autore</h1>

<form method="post" action="modifica_autore.asp?id=<%=id%>">
Seleziona l'autore da modificare:<br><br>
<select name="autore"
onchange="location.href='modifica_autore.asp?id='+this.value">
<option value=""></option>
<%
    rs.Open "SELECT * FROM autori ORDER BY aut_id ASC", cn, 1
    While rs.EOF = False
%>
<option value="<%=rs("aut_id")%>"><%=rs("aut_nome")%></option>
<%
        rs.MoveNext
    Wend
    rs.Close
%>
</select><br><br>
<%
    If id <> "" Then
        rs.Open "SELECT * FROM autori WHERE aut_id = " & id, cn, 1
%>
Nome dell'autore da modificare<br><br>
<input type="text" name="nome" maxlength="50"
value="<%=rs("aut_nome")%>">
<br><br>
<input type="submit" name="modifica" value="Modifica un autore">
</form>
<%
        rs.Close
    End If
    If Request.Form("modifica") <> "" Then
        Dim nome
        nome = Request.Form("nome")
        If nome = "" Then
%>
<p>Specifica il nome dell'autore</p>
<%
        Else
            Dim SQL
            SQL = "SELECT * FROM autori WHERE aut_id = " & id
            rs.Open SQL, cn, 3, 3
            rs("aut_nome") = nome
            rs.Update
            rs.Close
%>
<p>Modifica effettuata con successo!</p>
<%
        End If
    End If
%>

</body>
</html>
<%
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
%>
Ecco cos'abbiamo fatto: abbiamo popolato una selectbox con i record presenti nella tabella su cui agire, in modo da scegliere il record che ci interessa; una volta selezionato il record ricarichiamo la pagina passando nella querystring l'ID del record che ci interessa e lo usiamo come filtro su di una query che popola il modulo HTML col record da modificare.

A questo punto scriviamo quello che ci interessa nel campo di testo ed inviamo i nuovi dati; usiamo il Recordset per leggere il record che ci interessa, agiamo sul campo desiderato e lo aggiorniamo. Il codice somiglia molto a quello dell'inserimento dei dati, con la differenza che non usiamo, ovviamente, il metodo "AddNew".

(L'articolo continua più sotto...)

Volendo possiamo anche non usare il Recordset ma semplicemente il metodo "Execute" dell'oggetto Connection come segue:

Dim SQL
SQL = ""
SQL = SQL & "UPDATE autori SET aut_nome = '" & nome & "' "
SQL = SQL & "WHERE aut_id = " & id
cn.Execute(SQL)
al posto di:
Dim SQL
SQL = "SELECT * FROM autori WHERE aut_id = " & id
rs.Open SQL, cn, 3, 3
rs("aut_nome") = nome
rs.Update
rs.Close
Lanciate il file all'indirizzo
http://localhost/test_db/modifica_autore.asp
per testare il risultato.

Lascio al lettore il compito di implementare la pagina per la modifica di un libro.

Corsi
Corso ASPCorso ASP
Corso completo per la creazione di siti Web dinamici. A partire da 39 €.
Corso ASP da ZeroCorso ASP da Zero
Imparare Microsoft ASP e VBScript da zero. A partire da 29 €.
Corso ASP e AccessCorso ASP e Access
Gestione di un database MS Access con ASP. A partire da 29 €.
Sommario
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122