Agregar registro ADO

Podemos usar la instrucción INSERT INTO de SQL para agregar registros a la tabla de la base de datos.

Agregar registros a la tabla de la base de datos

Esperamos agregar un nuevo registro a la tabla Customers de la base de datos Northwind. Primero, debemos crear un formulario que contenga los campos de entrada que necesitamos para recopilar datos:

<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="Agregar Nuevo"> 
<input type="reset" value="Cancelar">
</form>
</body>
</html>

Cuando el usuario presiona el botón de confirmar, este formulario se enviará al archivo llamado "demo_add.asp". El archivo "demo_add.asp" contiene el código para agregar un nuevo registro a la tabla 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 tiene permisos de actualización!")
else 
  Response.Write("<h3>" & recaffected & " registro agregado</h3>")
end if
conn.close
%>
</body>
</html>

Importante

Al usar la orden INSERT command, tenga en cuenta lo siguiente:

  • Si la tabla contiene una clave principal, asegúrese de que el valor agregado al campo de clave principal sea único y no nulo (de lo contrario, el proveedor no agregará este registro o puede producirse un error).
  • Si la tabla contiene un campo de número de serie automático, no incluya este campo en la orden INSERT (el valor de este campo es responsabilidad del proveedor).

Acerca de campos sin datos

En la base de datos MS Access, si configura la propiedad AllowZeroLength en "Sí", puede ingresar cadenas de longitud cero ("") en campos de texto, enlaces de hipertexto y campos de nota.

Notas:No todos los bases de datos admiten cadenas de longitud cero, por lo tanto, al agregar registros con campos en blanco, puede producirse un error. Por lo tanto, es importante verificar los tipos de datos admitidos por la base de datos que está utilizando.