>> Torna all'Homepage <<
Contattaci Entra nei forum Cerca nel sito
News della settimana ASP: esempi di pagine dinamiche Trucchi e suggerimenti per il PC Manuali e guide I dossier e gli approfondimenti di AmicoPc Il sito della settimana I racconti di Armando Staffa Chi siamo
     
 

 

Scarica i file
Scarica i file
citati in questa pagina

 


AGGIUNGERE O RIMUOVERE UN RECORD DA UN DATABASE

Abbiamo finora visto come fare per visualizzare il contenuto di un database.
A questo punto invece vediamo come aggiungere o rimuovere un record allo stesso database (link.mdb). 

Ci serviremo di due file per l’aggiornamento (“aggiungi.htm” e “aggiorna.asp”) e di due file per l’eliminazione (“rimuovi.asp” ed “elimina.asp”), nonchè di un file (“ok.htm”) contenente un testo di conferma per l’operazione che si è conclusa con successo e di un file con un messaggio di errore (“errore.htm”)
Cominciamo da questi ultimi.

OK.HTM
Si tratta di un semplice file html in cui scriveremo qualcosa del tipo ‘Operazione eseguita con successo’. Nient’altro.

ERRORE.HTM
E’ anch’esso un semplice file html che contiene un messaggio errore, del tipo ‘Attenzione! Compilare TUTTI i campi del modulo. Clicca qui per tornare indietro’, con un link che faccia riferimento alla pagina ‘aggiungi.htm’.


Vediamo invece la procedura per eliminare un record da un database.
Nelle pagine precedenti abbiamo visto come sia possibile passare un valore ad una pagina mediante un link strutturato in una determinata maniera (mi riferisco alle pagine ‘elenco.asp’ e ‘scheda.asp’).
Utilizzeremo lo stesso concetto anche in questo caso.

RIMUOVI.ASP
In questa prima pagina facciamo in modo di visualizzare tutti i record contenuti nel database sotto forma di link. Cliccando su uno di questi link, il record corrispondente viene rimosso dal database.

Cominciamo a creare la connessione al database nel solito modo

<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("database/link.mdb")

Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")

Anche in questo caso selezioniamo tutti i valori presenti nel database e li ordiniamo in base all’ID decrescente (se volessimo invece ordinarli inbase all’ID crescente sarebbe sufficiente rimuovere la parola ‘DESC’)

rs.Open "select * from link order by id DESC", conn

e, come sempre, chiedo che si vada avanti finchè non giungiamo alla fine del file (EndOf File)

Do while NOT RS.EOF

Ora creiamo una variabile che chiamiamo ‘id1’ e vi assegniamo come valore quello preso dal campo ‘id’ del database.

Dim id1
id1=rs("id")
%>

Cominciamo a mostrare i risultati, i quali saranno linkati alla pagina ‘elimina.asp’ e avranno, come parametro ‘id’, valore del contatore di quel record stesso.
Così facendo siamo certi di non avere due link con lo stesso valore per il parametro.

<a href="elimina.asp?id=<% =id1 %>">

<%
Dim link
link=rs("link")
response.write(link)
%></a></p>

Fatto questo mi sposto al record successivo e ripeto l’operazione

<%
RS.MoveNext
Loop

Quando non ci sono più record e sono giunto pertanto alla fine del file, chiudo la connessione.

RS.Close
Set RS = Nothing
conn.Close
Set conn=Nothing
%>

Vediamo ora il secondo file

ELIMINA.ASP
Come prima cosa dobbiamo ricavare il valore del parametro ‘id’ presente nel collegamento su cui abbiamo cliccato.
Come già abbiamo visto per ottenere il valore di tale parametro usiamo la stringa 'request.querystring("parametro")'
Quindi avremo

<%
Dim id1
id1=request.querystring("id")

In questo modo nella variabile ‘id1’ è memorizzato il valore del campo ‘id’ del database che, inutile ricordarlo, è un campo contatore, quindi diverso per ogni record.
Creiamo dunque la solita connessione al database ‘link.mdb’ memorizzato nella cartella ‘database’

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("database/link.mdb")
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")

Fatto questo scegliamo di eliminare il record a cui corrisponde tale valore ‘id1’.

rs.Open "delete * from link where id ="&id1, conn

Negli esempi precedenti avevamo usato ‘select’, in modo da ‘caricare’ i dati che corrispondono al criterio assegnato. Dato però che ora dobbiamo eliminare tali dati, usiamo ‘delete’.
La stringa così scritta significa: elimina tutti i dati (delete *) dalla tabella ‘link’ (from link) dove il campo ‘id’ (where id) è uguale alla variabile ‘id1’ (=“&id1), ovvero uguale al valore ‘id’ preso dal collegamento su cui abbiamo cliccato nel file precedente.
Fatto questo possiamo chiudere il la connessione

conn.Close
Set conn=Nothing

A questo punto non ci rimane che caricare la pagina di conferma ‘ok.htm’ e l’eliminazione di un record dal database è completa

response.redirect("ok.htm")
%>

 


Vediamo invece come fare per aggiungere dati ad un database.
Continuiamo, per comodità, a far riferimento al database ‘link.mdb’.
In questo caso abbiamo due campi: il campo ‘link’ e il campo ‘descrizione’.
La prima cosa da fare quindi, è creare una pagina html con un form avente, per l’appunto due campi di testo: un campo a riga singola (che chiameremo ‘form_link’) e un campo di testo a scorrimento (che chiameremo ‘form _descrizione’).

Infatti nel nostro database abbiamo impostato il campo ‘link’ come semplice testo (quindi una sola riga con al massimo 255 caratteri), mentre il campo ‘descrizione’ è un campo ‘memo’ che può contenere infiniti caratteri (quindi necessita di un campo di testo a scorrimento)

AGGIUNGI.HTM
Questa pagina può essere agevolmente creata con uno qualsiasi dei programmi utilizzati normalmente per realizzare le pagine html.
Nel caso in cui utilizziate Front Page, è sufficiente creare un nuovo file e scegliere il comando ‘Inserisci -> Modulo -> Modulo’. In automatico verranno visualizzati i due pulsanti ‘Invia’ e ‘Ripristina’.
A questo punto posizionarsi all’interno dell’area tratteggiata e scegliere ‘Inserisci -> Modulo  -> Casella di testo riga singola’.
A questo punto cliccarvi sopra due volte e scegliere come nome ‘form_link’ e confermare.
Di nuovo scegliere ‘Inserisci -> Modulo -> Casella di testo a scorrimento’.
Anche in questo caso cliccarvi sopra due volte e inserire, come nome, ‘form_descrizione’ (naturalmente senza virgolette).
Infine cliccare col tasto destro in un punto vuoto dell’area tratteggiata e scegliere ‘Proprietà modulo’.
Nella finestra che appare scegliere ‘Altre destinazioni’ e scrivere, nel primo campo, ‘aggiorna.asp’, mentre nel secondo campo si dovrà selezionare la voce ‘post’.

A questo punto salvare il file con il nome ‘aggiungi.htm’

Per comodità riporto qui sotto il codice html della pagina così creata

<html>
<body>
<form method="POST" action="aggiorna.asp">
<p>Link<br>
<input type="text" name="form_link" size="20"></p>
<p>Descrizione<br>
<textarea rows="2" name="form_descrizione" cols="20"></textarea></p>
<p><input type="submit" value="Invia" name="B1"><input type="reset" value="Reimposta" name="B2"></p>
</form>
</body>
</html>

Nella pagine precedenti abbiamo detto che uno dei modi per passare informazioni da una pagina all’altra, è appunto quello di utilizzare un ‘form’ (o ‘modulo’ per chi parla italiano). A dir la verità finora abbiamo utilizzato i link, i quali, strutturati nel modo in cui abbiamo visto (link.asp?parametro=valore) consentono di passare uno o più valori alla pagina richiamata. Questo va bene se si tratta di poche informazioni, per lo più qualche variabile generata dalla stessa pagina asp (il famoso valore ‘id’).

In questo caso però i dati da passare alla seconda pagina vengono immessi dall’utente nel momento in cui la pagina stessa è già stata caricata. Quindi non è possibile utilizzare i collegamenti ipertestuali nel modo in cui abbiamo precedentemente visto.

Occorre utilizzare un altro metodo: il modulo, appunto che, come si vede dal codice, richiama, col metodo ‘post’, il file ‘aggiorna.asp’.

AGGIORNA.ASP
Qusto file ha il compito di prelevare tali informazioni dal modulo e di inserirle nel database.

Pertanto avremo

<%
Dim link1
link1=request.form("form_link")
Dim descrizione1
descrizione1=request.form("form_descrizione")

Fino ad ora avevamo utilizzato la funzione ‘request’ nella modalità ‘request.queystring(“YYY”)’ (dove YYY corrisponde al nome del parametro di cui ci interessa avere il valore); dato però che non si tratta di ricavare informazioni da una ‘stringa’ ma da un modulo, ecco che la utilizzeremo nel formato ‘request.form(“XXX”)' (dove XXX rappresenta il nome del campo del form di cui ci interessa avere il valore).

A questo punto controlliamo che i due campi non siano vuoti. In tale caso faremo in modo di visualizzare una pagina di errore (più avanti vedremo come rendere obbligatoria la compilazione di tali campi grazie all'utilizzo di un javascript)

Per controllare appunto la compilazione di tali campi usiamo ‘if... then... end if...’, funzione che abbiamo già avuto modo di incontrare.

if link1 = "" then
response.redirect("errore.htm")
end if
if descrizione1 = "" then
response.redirect("errore.htm")
end if

Come si può vedere la struttura di tale verifica è abbastanza semplice e tradotta in italiano significa: ‘se la variabile link1 (if link1) è vuota (= “”) allora (then) caricami la pagina errore.htm (response.redirect(“errore.htm”))’.
Vale solo la pena ricordare che ‘if... then...’ devono necessariamente chiudersi con ‘end if’!
Allo stesso modo per la variabile ‘descrizione1’.

Se le variabili non sono vuote (quindi con valore diverso da “”) possiamo aggiungere un record al database e in tale record memorizzare i dati prelevati dal modulo ‘aggiungi.htm’.
Occorre innanzitutto creare la connessione al database

Dim conn
Set conn = Server.CreateObject("ADODB.Connection")

conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("database/link.mdb")

A questo punto selezioniamo tutti i valori presenti nella tabella

sql = "SELECT * FROM link"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3

e vi aggiungiamo un nuovo record

RS.AddNew

A questo punto il campo ‘link’ di tale record sarà riempito con il valore prelevato dal campo ‘form_link’ del nostro modulo; valore che è memorizzato nella variabile ‘link1’.

Peranto avremo

rs.Fields("link")=link1

e allo stesso modo per il campo ‘descrizione’

rs.Fields("descrizione")=descrizione1

Fatto questo aggiorniamo il database

rs.update

e chiudiamo la connessione e il recordset

RS.Close
Set RS=Nothing
conn.Close
Set conn=Nothing

Come per il file ‘elimina.asp’ anche in questo caso carichiamo una pagina di conferma (per risparmiare byte riutilizziamo la pagina ‘ok.htm’ che abbiamo creato prima)

response.redirect("ok.htm")
%>

 

Insieme per un mondo migliore

Utenti connessi: 35

Invia questa pagina ad un amico

 

 

 

Chi siamo | Pubblicità | Note sulla privacy | Dicono di noi
Grafica cura di Paolo Omero
- Stefania Migliorucci

La riviera delle azalee