Adicionar Registro ADO

We can use the SQL INSERT INTO command to add records to the table in the database.

Add records to the table in the database

We hope to add a new record to the Customers table in the Northwind database. First, we need to create a form that contains the input fields we need to collect data from:

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

Quando o usuário clicar no botão Confirmar, este formulário será enviado para o arquivo chamado "demo_add.asp". O arquivo "demo_add.asp" contém o código para adicionar um novo registro à tabela 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") & "')"
ao erro, continuar
conn.Execute sql,recaffected
if err<>0 then
  Response.Write("Sem permissões de atualização!")
else 
  Response.Write("<h3>" & recaffected & " registro adicionado</h3>")
fim se
conn.close
%>
</body>
</html>

Ponto Importante

Ao usar o comando INSERT command, observe os seguintes pontos:

  • Se a tabela contiver uma chave primária, certifique-se de que o valor adicionado ao campo da chave primária é único e não vazio (caso contrário, o provider não adicionará esse registro ou ocorrerá um erro).
  • Se a tabela contiver um campo de número sequencial, não inclua esse campo no comando INSERT (o valor desse campo é responsabilidade do provider).

Sobre campos sem dados

No banco de dados MS Access, se você definir a propriedade AllowZeroLength como 'Sim', você pode inserir strings de comprimento zero ("") em campos de texto, hiperlinks e campos de anotações.

Notas:Não todos os bancos de dados suportam strings de comprimento zero, portanto, ao adicionar registros com campos em branco, pode ocorrer um erro. Portanto, é importante verificar os tipos de dados suportados pelo banco de dados que você está usando.