Come accennato in precedenza, ora verrà mostrato e commentato il codice asp necessario per la rimozione fisica di un record all'interno del database.
<%
dim intCodice
intCodice = request("Id")
if intCodice<>"" then
dim strCode
strCode="innovatel"
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("libreria.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn
sql = "SELECT * FROM libri WHERE Id="&intCodice
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
rs.delete
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
response.redirect "cancella1.asp"
else
response.redirect "cancella1.asp"
end if
%>
Come si può facilmente osservare la parte di apertura, di interrogazione e di chiusura del database e del relativo recordset è identica a quella descritta nelle lezioni precedenti. Se vi fossero dubbi sull'argomento, vi invito a consultare le prime lezioni sull'argomento database.
Ciò su cui desidero porre l'attenzione è la sintassi effettiva di cancellazione del RecordSet appena creato.
rs.delete
Con questa semplice istruzione, andremo a rimuovere il contenuto del record selezionato. Una volta cancellato, verremo rimandati alla pagina di partenza dove, se desideriamo, abbiamo la possibilità di cancellare altri libri. Ciò che osserviamo nella pagina è la seguente figura.
Come si può notare dalla tabella appena vista, manca nella colonna Id il valore 6 ed il contenuto del libro visto nella prima pagina di questa lezione. Il fatto che manca un libro in elenco è logico: lo abbiamo appena cancellato. Ma perché manca (oltre al libro) il valore di Id uguale a 6? Per rispondere a questa domanda, bisogna ricordare il tipo di campo corrispondente alla voce Id. Questo campo è di tipo contatore, e una volta utilizzato un valore, non è più possibile riutilizzarlo direttamente. Infatti il suo contenuto si incrementa sempre di uno ogni volta che viene immesso un nuovo valore. Ma in base a cosa, viene aumentato questo valore? Il valore viene aumentato in base al numero reale e complessivo di record immessi all'interno del database conteggiando anche quelli eliminati in precedenza.