ADO Añadir registros
Podemos usar el comando SQL INSERT INTO para agregar un registro a una tabla en una base de datos.
Agregar un registro a una tabla en una base de datos
Queremos agregar un nuevo registro a la tabla Clientes en la base de datos Northwind. Primero creamos un formulario que contiene los campos de los que queremos 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="Add New">
<input type="reset" value="Cancel">
</form>
</body>
</html>
Cuando el usuario presiona el botón de enviar, el formulario se envía a un archivo llamado "demo_add.asp". El archivo "demo_add.asp" contiene el código que agregará un nuevo registro a la tabla Clientes:
<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>
Importante
Si utiliza el comando SQL INSERT, tenga en cuenta lo siguiente:
- Si la tabla contiene una clave principal, asegúrese de agregar un valor único, no nulo, al campo de la clave principal (si no es así, es posible que el proveedor no agregue el registro o se produzca un error).
- Si la tabla contiene un campo Autonumérico, no incluya este campo en el comando SQL INSERT (el proveedor se encargará automáticamente del valor de este campo)
¿Qué pasa con los campos sin datos?
En una base de datos de MS Access, puede ingresar cadenas de longitud cero ("") en los campos Texto, Hipervínculo y Memo SI establece la propiedad AllowZeroLength en Sí.
Nota: No todas las bases de datos admiten cadenas de longitud cero y pueden generar un error cuando se agrega un registro con campos en blanco. Es importante verificar qué tipos de datos admite su base de datos.