ADO Ajouter des enregistrements


Nous pouvons utiliser la commande SQL INSERT INTO pour ajouter un enregistrement à une table dans une base de données. 


Ajouter un enregistrement à une table dans une base de données

Nous souhaitons ajouter un nouvel enregistrement à la table Customers de la base de données Northwind. Nous créons d'abord un formulaire qui contient les champs à partir desquels nous voulons collecter des données :

<html>
<body>

<form method="post" action="demo_add.asp">
<table>
<tr>
<td>CustomerID:</td>
<td><input name="custid"></td>
</tr><tr>
<td>Company Name:</td>
<td><input name="compname"></td>
</tr><tr>
<td>Contact Name:</td>
<td><input name="contname"></td>
</tr><tr>
<td>Address:</td>
<td><input name="address"></td>
</tr><tr>
<td>City:</td>
<td><input name="city"></td>
</tr><tr>
<td>Postal Code:</td>
<td><input name="postcode"></td>
</tr><tr>
<td>Country:</td>
<td><input name="country"></td>
</tr>
</table>
<br><br>
<input type="submit" value="Add New">
<input type="reset" value="Cancel">
</form>

</body>
</html>


Lorsque l'utilisateur appuie sur le bouton d'envoi, le formulaire est envoyé dans un fichier appelé "demo_add.asp". Le fichier "demo_add.asp" contient le code qui ajoutera un nouvel enregistrement à la table Customers :

<html>
<body>

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"

sql="INSERT INTO customers (customerID,companyname,"
sql=sql & "contactname,address,city,postalcode,country)"
sql=sql & " VALUES "
sql=sql & "('" & Request.Form("custid") & "',"
sql=sql & "'" & Request.Form("compname") & "',"
sql=sql & "'" & Request.Form("contname") & "',"
sql=sql & "'" & Request.Form("address") & "',"
sql=sql & "'" & Request.Form("city") & "',"
sql=sql & "'" & Request.Form("postcode") & "',"
sql=sql & "'" & Request.Form("country") & "')"

on error resume next
conn.Execute sql,recaffected
if err<>0 then
  Response.Write("No update permissions!")
else
  Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close
%>

</body>
</html>

Important

Si vous utilisez la commande SQL INSERT, tenez compte des points suivants :

  • Si la table contient une clé primaire, assurez-vous d'ajouter une valeur unique et non nulle au champ de clé primaire (sinon, le fournisseur peut ne pas ajouter l'enregistrement ou une erreur se produit)
  • Si la table contient un champ NuméroAuto, n'incluez pas ce champ dans la commande SQL INSERT (la valeur de ce champ sera prise en charge automatiquement par le fournisseur)

Qu'en est-il des champs sans données ?

Dans une base de données MS Access, vous pouvez saisir des chaînes de longueur nulle ("") dans les champs Texte, Lien hypertexte et Mémo SI vous définissez la propriété AllowZeroLength sur Oui.

Remarque : Toutes les bases de données ne prennent pas en charge les chaînes de longueur nulle et peuvent provoquer une erreur lorsqu'un enregistrement avec des champs vides est ajouté. Il est important de vérifier les types de données pris en charge par votre base de données.