- ASP Básico - Alterando os dados em suas tabelas Usando SQL
-
- Este exemplo mostra como podemos alterar dados de uma
tabela usando instruções SQL. Usaremos a tabela Authors da
base de dados biblio.mdb. Nosso exemplo é
composto pelos seguintes arquivos:
-
- 1-)Altera.asp Exibe os registros da tabela Authors
, com um hiperlink no mome de cada autor. O
usuário deverá clicar no nome do autor que desejar
alterar.
-
- 2-)Altera_1.asp - Exibe em um formulário os dados
do autor selecionado no arquivo altera.asp .
-
- 3-)Altera_2.asp - Efetua a gravação das
alterações na tabela e exibe mensagem final ao
usuário.
-
- Vamos mostrar agora como podemos alterar um registro de
nossa tabela Authors. O arquivo altera.asp inicia
com a tela a seguir :
|
- Tela gerada pelo arquivo
altera.asp - exibe os registros da tabela Authors
|
- O código de altera.asp é idêntico ao arquivo inclui.asp
, a única diferença são os hiperlinks que
criamos no nome dos autores; mostraremos portanto
somente esta parte do código que é dada a seguir:
- DO UNTIL rstemp.eof
- 'atribuindo os valores dos
campos as variáveis
- Codigo=rstemp("Au_ID")
- Nome=rstemp("Author")
- Nascimento=rstemp("Year
born")
- ' escrevendo os campos em uma
tabela para exibição via um Browser
- response.write
"<tr>"
- response.write
"<td>" & Codigo &
"</td>"
- response.write
"<td><A HREF=" &
"altera_1.asp?id=" & codigo &
""">" & Nome &
"</a></td>"
- response.write
"<td>" & Nascimento &
"</td>"
- response.write
"</tr>"
- 'move-se para próximo registro
do recordset
- rstemp.movenext
- LOOP
-
|
- Observe que cada link irá chamar o arquivo altera_1.asp
passando como parâmetro o código do autor.(altera_1.asp?id=
)
-
- O arquivo altera_1.asp mostra na tela os dados a
serem alterados, veja a seguir
|
- Página gerada pelo arquivo
altera_1.asp exibe os dados do registro
selecionado para alteração
|
- O código do arquivo altera_1.asp é o
seguinte:
- <html><head>
- <title>altera_1.asp</title>
- </head><body
bgcolor="aqua">
- <%
- 'O DSN utilizado para a base de
dados Bibio.mdb é : asp_db
- Criando um objeto
connection e ligando-o ao nosso DSN
- set
conntemp=server.createobject("adodb.connection")
- conntemp.open "asp_db"
- convertendo o código em
para inteiro
- codigo=clng(request.querystring("id"))
- Montando a instrução
SQL para selecionar o autor com o código passado
como referência
- sqltemp="Select * From
authors Where Au_ID=" & codigo
- criando um recordset com
a instrução SQL
- set
rstemp=conntemp.execute(sqltemp)
- atribuindo os dados do
registro a alterar para variáveis
- form_auID=rstemp("Au_ID")
- form_author=rstemp("Author")
- form_year_born=rstemp("Year
Born")
-
- fechando recordset e
limpando a memória
- rstemp.close
- set rstemp=nothing
- conntemp.close
- set conntemp=nothing
- %>
- <body>
- <p><B><font
size=4>Formulário com os dados selecionados
para alteração
</font></b></P>
- <hr>
- <form
name="altera_autor"
action="altera_2.asp"
method="POST">
- <input type="hidden"
name="codigo"
value="<%=form_auid%>">
- <p>Código do Autor:
<%=form_auid%>
- </p>
- <p> Nome do Autor :
- <input type="TEXT"
name="nome"
value="<%=form_author%>"></p>
- <p> Data de nascimento :
- <input type="TEXT"
name="ano"
value="<%=form_year_born%>"></p>
- <p> <input
type="SUBMIT" Value="Gravar as
Alterações"> </p>
- <hr>
- <a
href="altera.asp">Voltar</a>
- </form>
- </body>
- </html>
-
|
- Este formulário é preenchido com os dados do autor
selecionado para alteração.
O usuário pode a seguir fazer as alterações e gravá-las ou
voltar a página inicial.
- Ao clicar no botão Gravar as Alterações o
arquivo altera_2.asp é processado exibindo o nome
da instrução SQL usada e os novos dados do registro.
Veja abaixo
|
- Tela gerada pelo script
altera_2.asp exibindo a instrução SQL efetuada
e os dados alterados
|
Para atualizar registros usando uma instrução a SQL usamos a
instrução UPDATE/SET com a seguinte sintaxe:
UPDATE <tabela> SET <dados a alterar>
<condição para alteração>
Ex:
UPDATE Authors
SET
[Year
Born] = 1945 WHERE [Year Born] = 1955
- Atualiza na tabela Authors o campo
[Year
Born] atribuindo ao mesmo o valor 1945, quando o campo
[Year Born] for igual a 1955
-
- O código do arquivo altera_2.asp é :
- <HTML><HEAD>
- <TITLE>altera_2.asp</TITLE>
- <body
bgcolor="aqua"></HEAD>
- <%
- 'ativa tratamento de erros
- on error resume next
-
- 'atribui os valores do
formulario as variaveis
- nome=request.form("nome")
- ano=request.form("ano")
- codigo=request.form("codigo")
-
- Set Conn =
Server.CreateObject("ADODB.Connection")
-
- 'O DSN utilizado para a base de
dados Bibio.mdb é : asp_db
- conn.open "asp_db"
-
- 'monta consulta para atualiza
os registros
- SQL = "UPDATE authors SET
"
- SQL = SQL &
"Author='" & nome &
"',"
- SQL = SQL & "[year
born]=" & ano
- SQL = SQL & " WHERE
Au_ID=" & codigo
-
- Set RS = Conn.Execute(SQL)
-
- 'se houve algum erro, detalha
- If err.number>0 then
- response.write "Ocorreram os
seguintes erros no Script: " &
"<P>"
- response.write "Erro
Numero=" & err.number &
"<P>"
- response.write
"Descricao=" & err.description
& "<P>"
- response.write "Contexto de
Ajuda=" & err.helpcontext &
"<P>"
- response.write "Caminho de
Ajuda=" & err.helppath &
"<P>"
- response.write "Erro
Nativo=" & err.nativeerror &
"<P>"
- response.write "Fonte="
& err.source & "<P>"
- response.write
"SQLState=" & err.sqlstate &
"<P>"
- end if
- IF conn.errors.count> 0 then
- response.write "Ocorreu um
erro no Banco de Dados " &
"<P>"
- response.write SQLstmt &
"<P>"
- for counter= 0 to
conn.errors.count
- response.write "Error #"
& conn.errors(counter).number &
"<P>"
- response.write "Error desc.
-> " &
conn.errors(counter).description &
"<P>"
- next
- else
-
- response.write
"<B>Alterações gravadas com sucesso
!!!</b>"
- response.write
"<hr>"
- response.write
"<br>" & "A consulta
utilizada foi a seguinte: "
- response.write
"<br>" & SQL
- response.write
"<br>"
- response.write
"<br>" & "Os novos dados
são : "
- response.write
"<br>"
- response.write
"<br>" & "Codigo -
" & codigo
- response.write
"<br>" & "Nome - "
& nome
- response.write
"<br>" & "Data de
Nascimento - " & ano
- end if
-
- rs.close
- set rs=nothing
- Conn.Close
- set conn=nothing
- %>
- <hr>
- <a
href="altera.asp">Voltar</a>
- </BODY>
- </HTML>
|
- A instrução sql usada foi a seguinte:
-
- SQL = "UPDATE authors SET "
- SQL = SQL & "Author='" & nome &
"',"
- SQL = SQL & "[year born]=" & ano
- SQL = SQL & " WHERE AU_ID=" & codigo
-
- SQL é uma variável string onde armazenamos a
instrução , isto facilita o seu entendimento e
depuração.
-
- 1-) SQL = "UPDATE authors
SET " atualiza a tabela Authors nos
seguintes campos:
- 2-) SQL = SQL &
"Author='" & nome & "',"
- SQL = SQL & "[year
born]=" & ano
-
- Observe que a variável nome representa um string
e deve estar entre aspas simples (); já a
variávei ano é um valor numérico.
-
- 3-) SQL = SQL & " WHERE
AU_ID=" & codigo determina a
condição para alteração; Serão alterados os campos
cujos códigos (Au_Id) forem iguais a variável
codigo.
-
- A execução da consulta é feita com a seguinte linha de
código;
Set RS = Conn.Execute(SQL)
- O método execute do objeto
Connection executa a
instrução SQL e retorna o resultado para a variável
Recorset.
È isso ai... até o próximo capítulo...
José Carlos Macoratti