Supprimer un enregistrement ADO

Nous pouvons utiliser la commande DELETE de SQL pour supprimer un enregistrement de la table de la base de données.

Suppression d'enregistrements de la table

Nous souhaitons supprimer un enregistrement de la table Customers de la base de données Northwind. Tout d'abord, nous devons créer un tableau pour lister tous les enregistrements de 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>Liste de 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.asp">
<%
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", un nouveau fichier "demo_delete.asp" s'ouvrira. Ce fichier contient le code source des champs de saisie créés sur la base des enregistrements de la base de données, ainsi qu'un bouton "Supprimer" pour supprimer l'enregistrement actuel :

<html>
<body>
<h2>Supprimer un 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.asp">
  <table>
  <%for each x in rs.Fields%>
  <tr>
  <td><%=x.name%></td>
  <td><input name="<%=x.name%>" value="<%=x.value%>"></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("Pas de permissions de mise à jour !")
  else 
    response.write("Record " & cid & " was deleted!")
  end if 
end if
conn.close
%>
</body>
</html>