- ASP
Básico - Excluindo dados em suas tabelas
- Neste artigo vou abordar
como excluir dados de uma tabela Access . Vou Aproveitar
o código do arquivo altera.asp , mudando somente
as mensagens ao usuário. (Leia o artigo em : ASP Básico - Alterando
os dados em suas tabelas Usando SQL
)
-
- Nosso exemplo para excluir
registros usa a instrução SQL DELETE FROM e
possui os seguinte arquivos:
-
- 1-) exclui.asp -
Abre a tabela Authors e exibe os
registros disponíveis para a exclusão.
2-) excluir.asp
exibe o registro selecionado solicitando a confirmação para
exclusão do registro.
- 3-) excluir_2.asp
executa a instrução DELETE FROM e remove o registro da tabela
exibindo informações ao usuário.
|
- Tela gerada pelo
script exclui.asp exibe os registros
disponíveis para exclusão
|
Código do arquivo de script exclui.asp
- <html><head>
- <TITLE>mostrar.asp</TITLE>
- </head>
- <body
bgcolor="#00FFFF">
- <%
-
- 'Para acesso sem
um DSN fariamos
- set
conntemp=server.createobject("adodb.connection")
- conntemp.open "DBQ=C:\asp_db\biblio.mdb;DRIVER={Microsoft
Access Driver (*.mdb)}"
-
- 'Vamos
selecionar somente os primeiros registros da
tabela
- 'Para isto
criaremos uma instrução SQL que selecione
somente os autores com 'Au_id menor que 12
- aspSQL="select
* from authors where Au_id <12 "
-
- set
rstemp=conntemp.execute(aspSQL)
-
- ' verifica se
há dados no recordset
- If rstemp.eof then
- response.write
"Não há dados a exibir<br>"
- response.write
aspSQL & "<br>Não retorna
informação alguma..."
- connection.close
- set
connection=nothing
- response.end
- end if
- ' Vamos usar
código HTML para criar uma tabela e exibir
nossos dados
- %>
- <p><font
color="#004080"
size="5"><strong>Excluindo
dados da tabela - Authors
</strong></font></p>
- <hr>
- <table border=2
bgcolor="#FFFFFF">
- <%
- ' Vamos dar nome
aos cabeçalhos dos campos
- response.write
"<tr>"
- 'Percorremos os
campos
- for each item in
rstemp.fields
- response.write
"<td><B>" & item.name
& "</B></TD>"
- next
- response.write
"</tr>"
-
- ' Agora iremos
exibir os dados do Recordset gerado pela consulta
SQL
- ' Vamos
percorrer o recordset até chegar no final do
arquivo
-
- 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=" &
"excluir.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
- %>
- </table>
- <p><font
color="#004080"
size="5"><strong>Clique no
autor que deseja
Excluir</strong></font></p>
- <hr>
- <%
- ' Fechamos o
recordset e liberamos a memória usada
- rstemp.close
- set rstemp=nothing
- conntemp.close
- set
conntemp=nothing
- %>
- </body>
- </html>
|
- Ao clicar em um autor para
excluí-lo o arquivo excluir.asp é acionado e
recebe como parâmero o código do autor selecionado (Estamos
usando o método GET). A ASP processa a informação
, seleciona os dados do autor da tabela e exibe os dados
para usuário confirmar a exclusão.
|
- Tela gerada pelo
script excluir.asp exibindo o registro
selecionado em exclui.asp
|
- A única diferença é que
os dados que são exibidos não estão acessíveis ao
usuário.
-
- Usamos a tag hidden . Ex: <input
type="hidden" name="codigo"
value="<%=form_auid%>">
- Usamos o seguinte código
para este arquivo:
- <form
name="myauthor"
action="excluir_2.asp"
method="POST">
- <input
type="hidden" name="codigo"
value="<%=form_auid%>">
- <p>Código do
Autor : <%=form_auid%></p>
- <input
type="hidden" name="nome"
value="<%=form_author%>">
- <p> Nome do
Autor : <%=form_author%></p>
- <input
type="hidden" name="ano"
value="<%=form_year_born%>">
- <p> Data de
nascimento :<%=form_year_born%></p>
- <p> <input
type="SUBMIT" Value="Excluir este
Autor"> </p>
- <hr>
- <a
href="exclui.asp">Voltar</a>
- </form>
-
|
- Através do uso do elemento
hidden no formulário desabilitamos as caixas de
texto e mostramos somente os dados selecionados ,
impedindo assim que o usuário altere os dados exibidos.
-
- Obs: Para poder
excluir registros da tabela Authors temos que excluir os
relacionamentos existentes entre ela e as outras tabelas.
Para fazer isto abra a base de dados no Access e no menu
Ferramentas selecione a opção Relacionamentos. A seguir
clique com o botão direito do mouse sobre as linhas de
relacionamento e selecione Excluir.
-
- Agora ao clicar no botão Excluir
este Autor chegamos ao seguinte resultado:
- Novamente usamos uma
instrução SQL para excluir o registro da tabela, a
instrução : DELETE FROM <tabela> WHERE
<condição>
-
- O código do arquivo excluir_2.asp
é idêntico ao do arquivo altera_2.asp ,
alteramos apenas os dizeres e a consulta SQL para:
-
- SQL = "DELETE FROM
authors WHERE AU_ID=" & codigo
- <HTML><HEAD>
- <TITLE>excluir_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 =
"DELETE FROM authors 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="exclui.asp">Voltar</a>
- </BODY>
- </HTML>
|
Nota : Para ver
como criar um DSN leia o artigo : Banco
de dados Criando um Data Source Name - DSN
Aguarde mais artigos na série
ASP Básico . Tchau !!!
José Carlos Macoratti