Atualizar Registro ADO

Podemos usar o UPDATE do SQL para atualizar um registro na tabela do banco de dados.

Atualizar registros da tabela do banco de dados

Nós esperamos atualizar um registro na tabela Customers do Northwind. Primeiro precisamos criar uma tabela para listar todos os registros do Customers.

<html>
<body>
<%
set conn = Server.CreateObject("ADODB.Connection")

conn.Open '
set rs = Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM customers",conn
%>
<h2>List Database</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_update.asp">
<%
for each x in rs.Fields
  if lcase(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>

Se o usuário clicar no botão na coluna "customerID", será aberto um novo arquivo "demo_update.asp". Este arquivo contém o código-fonte para criar campos de entrada, baseados nos campos do banco de dados, e também contém um botão "Atualizar" para salvar as alterações:

<html>
<body>
<h2>Atualizar registro</h2>
<%
set conn = Server.CreateObject("ADODB.Connection")

conn.Open '
cid = Request.Form("customerID")
if Request.form("companyname") = "" then
  set rs = Server.CreateObject("ADODB.Recordset")
  rs.open '
  %>
  <form method="post" action="demo_update.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="Atualizar registro">
  </form>
<%
else
  
  
  
  sql = sql & '
  sql=sql & "city='" & Request.Form("city") & "',"
  sql=sql & "postalcode='" & Request.Form("postalcode") & "',"
  sql=sql & "country='" & Request.Form("country") & "'"
  sql=sql & " WHERE customerID='" & cid & "'"
  on error resume next
  conn.Execute sql
  if err<>0 then
    response.write("Sem permissões de atualização!")
  else 
    response.write("Registro " & cid & " foi atualizado!")
  end if 
end if
conn.close
%>
</body>
</html>