ADO Suppression d'enregistrements
Nous pouvons utiliser la commande SQL DELETE pour supprimer un enregistrement d'une table de base de données.
Suppression d'enregistrements d'une table
Nous voulons supprimer un enregistrement de la table Customers dans la base de données Northwind. Tout d'abord, nous devons créer une table qui répertorie tous les enregistrements dans Customers.
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM customers",conn
%>
<h2>Lister la base de données</h2>
<table border="1" width="100%">
<tr>
<%
for each x in rs.Fields
response.write("<th>" & ucase(x.name) & "</th>")
next
%>
</tr>
<% do until rs.EOF %>
<tr>
<form method="post" action="demo_delete.html">
<%
for each x in rs.Fields
if x.name="customerID" then%>
<td>
<input type="submit" name="customerID" value="<%=x.value%>">
</td>
<%else%>
<td><%Response.Write(x.value)%></td>
<%end if
next
%>
</form>
<%rs.MoveNext%>
</tr>
<%
loop
conn.close
%>
</table>
</body>
</html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM customers",conn
%>
<h2>Lister la base de données</h2>
<table border="1" width="100%">
<tr>
<%
for each x in rs.Fields
response.write("<th>" & ucase(x.name) & "</th>")
next
%>
</tr>
<% do until rs.EOF %>
<tr>
<form method="post" action="demo_delete.html">
<%
for each x in rs.Fields
if x.name="customerID" then%>
<td>
<input type="submit" name="customerID" value="<%=x.value%>">
</td>
<%else%>
<td><%Response.Write(x.value)%></td>
<%end if
next
%>
</form>
<%rs.MoveNext%>
</tr>
<%
loop
conn.close
%>
</table>
</body>
</html>
Si l'utilisateur clique sur le bouton dans la colonne "customerID", le nouveau fichier "demo_delete.asp" s'ouvrira. Ce fichier contient le code source qui crée des champs de saisie en fonction des champs de l'enregistrement dans la base de données, et inclut également un "Bouton Supprimer" pour supprimer l'enregistrement actuel :
<html>
<body>
<h2>Supprimer l'enregistrement</h2>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
cid=Request.Form("customerID")
if Request.form("companyname")="" then
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM customers WHERE customerID='" & cid & "'",conn
%>
<form method="post" action="demo_delete.html">
<table>
<%for each x in rs.Fields%>
<tr>
<td><%=x.name%></td>
<%next%>
</tr>
</table>
<br><br>
<input type="submit" value="Supprimer l'enregistrement">
</form>
<%
else
sql="DELETE FROM customers"
sql=sql & " WHERE customerID='" & cid & "'"
on error resume next
conn.Execute sql
if err<>0 then
response.write("Aucune permission de mise à jour !")
else
response.write("Enregistrement " & cid & " a été supprimé !")
end if
end if
conn.close
%>
</body>
</html>
<body>
<h2>Supprimer l'enregistrement</h2>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
cid=Request.Form("customerID")
if Request.form("companyname")="" then
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM customers WHERE customerID='" & cid & "'",conn
%>
<form method="post" action="demo_delete.html">
<table>
<%for each x in rs.Fields%>
<tr>
<td><%=x.name%></td>
<%next%>
</tr>
</table>
<br><br>
<input type="submit" value="Supprimer l'enregistrement">
</form>
<%
else
sql="DELETE FROM customers"
sql=sql & " WHERE customerID='" & cid & "'"
on error resume next
conn.Execute sql
if err<>0 then
response.write("Aucune permission de mise à jour !")
else
response.write("Enregistrement " & cid & " a été supprimé !")
end if
end if
conn.close
%>
</body>
</html>