Cancellare record da database in una pagina ASP attraverso una check form. Come realizzarlo con Dreamweaver

Sinceramente mi sono trovato spesso in questa situazioneanche io: cancellare più record da un database, da unapagina ASP. Il metodo che descrivo, ovviamente, nonè l'unico; ce ne saranno altri ma, a mio modo divedere è molto semplice, non richiede molto codice emolti passaggi, che già conosciamo, si possono faregrazie a Dreamweaver ed i suoi comportamenti server.

Per l'esempio in oggetto, ho creato una tabella neldatabase Access; tale tabella l'ho chiamatatabUtenti. Essa è composta daiseguenti campi:

  • ID
  • Nome
  • Cognome
  • Email

Di seguito l'immagine che raffigura la suddetta tabellain visualizzazione struttura in Access:

Tabella in vista struttura di Access

Ovviamente ho inserito dei nomi di fantasia...

Fatto questo, possiamo aprire Dreamweaver e creare una paginache io ho chiamato elenco.asp. In questapagina si deve procedere con:

  • configurazione sito (se non è stata fatta precedentemente)
  • connessione al database
  • recordset; (nel mio esempio l'ho nominato: rsUtenti)

Dando per scontato che ormai questi passaggi sappiamopadroneggiarli e che siano andati a buon fine, inserire unform (possiamo accettare il nome e l'id di default delprogramma) che abbia l'action impostatosu una seconda pagina, che ci servirà in seguito.Dovremmo avere un codice del genere:

    <form name="form1" id="form1" method="post" action="processa.asp">...codice tabella...</form>


Inserire una tabella nel form che abbia 1 riga e 4 colonne(quanti sono i campi del database, escludendo il campo id).Nella quarta cella di destra metteremo uncheckbox; anche questo elemento siripeterà parallelamente ai record.

Dal pannello Applicazione di Dreamweaver, indivisuare ilrecordset creato, cliccare sul tabAssociazioni ed espanderersUtenti. Trascinare nella prima cella disinistra il nome, poi il cognome ed infine l'email. Nellaquarta cella, come preannunciato, inseriamo un checkbox, dalpannello Moduli. La struttura che avremo invista codice di quanto appena scritto sarà comel'immagine di seguito:

Tabella in vista codice di dreamweaver

Una cosa alla quale fare attenzione è la quarta cella,quella con il checkbox; il suo codice deve essere:

    <input type="checkbox" name="del" id="del" value="<%=(rsUtenti.Fields.Item("id").Value)%>" />


Come si può vedere, il valore (value) delcheckbox deve per forza essere uguale a quello del campo iddella tabella del database altrimenti, in fase dicancellazione, riceveremo un messaggio di errore.

Il prossimo, ed ultimo passaggio, da fare in questa paginaè l'area ripetuta. Individuare il secondo gruppodi celle contraddistinte da
 

<tr><td>codice</td>....</tr>


Aprire il pannello Applicazione, fare clic sul tabComportamenti server e selezionareArea Ripetuta. Seguire i passaggi eselezionare il Recordset sorgente (rsUtenti nel nostro caso);accettare 10 per volta o spuntare "Tutti" e premereOK.
All'esterno della tabella inserire un pulsante disubmit con un value indicativo diquello che stiamo facendo; per esempio: <inputtype="submit" value="CANCELLASELEZIONATI" /> Salvare e aggiornare la paginanel browser; dovremmo essere arrivati al seguente punto:

Tabella utenti

La pagina "processa.asp"

Questa è la pagina che processa l'azione dellapagina precedente; per prima cosa copiare il recordset dellapagina elenco.asp.
Subito dopo, aggiungere il seguente codice:

    <%strIDs = Replace(Request.Form, "&del=" , " ,")strIDs = Replace(strIDs, "del=" , "")set DoDelete = Server.CreateObject("ADODB.Command")DoDelete.ActiveConnection = MM_NomeConnessioneDoDelete.CommandText = "DELETE FROM tabUtenti WHERE ID IN (" & strIDs & ")"DoDelete.CommandType = 1DoDelete.CommandTimeout = 0DoDelete.Prepared = trueDoDelete.Execute()Response.Redirect("elenco.asp")%>


Non serve altro in questa pagina. Possiamo salvare erichiamare dal nostro localhost la pagina elenco.asp.Selezionare almeno 2 record e premere il pulsante.