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

Scrittura dei dati in un database

Vediamo adesso come inserire, attraverso un form HTML, i dati all'interno della tabella "autori" e della tabella "libri" con due esempi di differente difficoltà.

Una premessa fondamentale è quella che è necessario assegnare le autorizzazioni in lettura e scrittura al database ed all'intera cartella "test_db" che stiamo utilizzando, operazione che potrebbe essere indispensabile, su alcuni sistemi, anche per la sola lettura dei dati, come visto nel capitolo precedente.

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

Cliccate col tasto destro del mouse sulla cartella "test_db" e selezionate le proprietà. Scegliete la scheda "Condivisione Web" e spuntate la voce "Condividi la cartella". Nel riquadro "Alias" comparirà il nome della cartella: cliccateci due volte e si aprirà una finestra in cui dovrete selezionare "Lettura" e "Scrittura" e confermare la scelta.

Iniziamo col file "aggiungi_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")
%>
<html>
<head>
<title>Aggiungi un autore</title>
</head>
<body>

<h1>Aggiungi un autore</h1>

<form method="post" action="aggiungi_autore.asp">
Inserisci il nome dell'autore<br><br>
<input type="text" name="nome" maxlength="50"><br><br>
<input type="submit" name="aggiungi" value="Aggiungi un autore">
</form>

<%
    If Request.Form("aggiungi") <> "" Then
        Dim nome
        nome = Request.Form("nome")
        If nome = "" Then
%>
<p>Inserisci il nome dell'autore</p>
<%
        Else
            rs.Open "autori", cn, 3, 3
            rs.AddNew
            rs("aut_nome") = nome
            rs.Update
            rs.Close
%>
<p>Inserimento effettuato con successo!</p>
<%
        End If
    End If
%>

</body>
</html>
<%
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
%>
Io ho aggiunto "C. Dickens".

Lanciate il file all'indirizzo

http://localhost/test_db/aggiungi_autore.asp
per testare il risultato.

Apriamo la Connection ed il Recordset, facendo riferimento al database MS Access creato in precedenza.

Nel corpo della pagina creiamo il modulo di inserimento che necessita del solo campo "nome" ed assegnamo un nome anche al bottone di invio, in modo da eseguire lo script di controllo ed eventuale inserimento solo se il modulo risulta inviato.

Per maggiori informazioni sul metodo di invio e recupero delle informazioni da un modulo HTML con ASP e col metodo post consiglio vivamente la lettura dell'articolo Trucchi per l'utilizzo del metodo POST.

Una volta inviate le informazioni per prima cosa recupero il campo di testo, verifico che sia stato compilato correttamente e, in caso positivo, effettuo l'inserimento del dato utilizzando il metodo "AddNew" per indicare al Recordset che si tratta di un inserimento, ed il metodo "Update" per aggiornare la tabella.

Passiamo adesso all'inserimento di un nuovo libro, a cui va associato l'autore, ragion per cui la filosofia non cambia ma si amplia.

Vediamo dunque il codice del file "aggiungi_libro.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")
%>
<html>
<head>
<title>Aggiungi un libro</title>
</head>
<body>

<h1>Aggiungi un libro</h1>

<form method="post" action="aggiungi_libro.asp">
Seleziona l'autore del libro da inserire:<br><br>
<select name="autore">
<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>
Inserisci il titolo del libro<br><br>
<input type="text" name="titolo" maxlength="50"><br><br>
<input type="submit" name="aggiungi" value="Aggiungi un libro">
</form>

<%
    If Request.Form("aggiungi") <> "" Then
        Dim autore, titolo
        autore = Request.Form("autore")
        titolo = Request.Form("titolo")
        If autore = "" Or titolo = "" Then
%>
<p>Tutti i campi sono obbligatori</p>
<%
        Else
            rs.Open "libri", cn, 3, 3
            rs.AddNew
            rs("lib_autore") = autore
            rs("lib_titolo") = titolo
            rs.Update
            rs.Close
%>
<p>Inserimento effettuato con successo!</p>
<%
        End If
    End If
%>

</body>
</html>
<%
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
%>
Io ho aggiunto "Oliver Twist" di Dickens.

Lanciate il file all'indirizzo

http://localhost/test_db/aggiungi_libro.asp
per testare il risultato.

Apriamo la Connection ed il Recordset, facendo riferimento al database MS Access creato in precedenza.

L'unica cosa che cambia rispetto al codice del primo file di inserimento esaminato in questa lezione è che costruiamo dinamicamente una selectbox, popolandola con i nomi dell'autore e con l'ID di appartenenza.

Per il resto ci siamo limitati ad agire in scrittura sulla tabella "libri" piuttosto che sulla tabella "autori".

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