- 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áveisCodigo=rstemp("Au_ID")Nome=rstemp("Author")Nascimento=rstemp("Year
                born")' escrevendo os campos em uma
                tabela para exibição via um Browserresponse.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 recordsetrstemp.movenextLOOP  | 
    - 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_dbCriando um objeto
                connection e ligando-o ao nosso DSNset
                conntemp=server.createobject("adodb.connection")conntemp.open "asp_db"convertendo o código em
                para inteirocodigo=clng(request.querystring("id"))Montando a instrução
                SQL para selecionar o autor com o código passado
                como referênciasqltemp="Select * From
                authors Where Au_ID=" & codigo criando um recordset com
                a instrução SQLset
                rstemp=conntemp.execute(sqltemp)atribuindo os dados do
                registro a alterar para variáveisform_auID=rstemp("Au_ID")form_author=rstemp("Author")form_year_born=rstemp("Year
                Born") fechando recordset e
                limpando a memóriarstemp.closeset rstemp=nothingconntemp.closeset 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 erroson error resume next 'atribui os valores do
                formulario as variaveisnome=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_dbconn.open "asp_db" 'monta consulta para atualiza
                os registrosSQL = "UPDATE authors SET
                "SQL = SQL &
                "Author='" & nome &
                "',"SQL = SQL & "[year
                born]=" & anoSQL = SQL & " WHERE
                Au_ID=" & codigo Set RS = Conn.Execute(SQL) 'se houve algum erro, detalhaIf err.number>0 thenresponse.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 ifIF conn.errors.count> 0 thenresponse.write "Ocorreu um
                erro no Banco de Dados " &
                "<P>"response.write SQLstmt &
                "<P>"for counter= 0 to
                conn.errors.countresponse.write "Error #"
                & conn.errors(counter).number &
                "<P>"response.write "Error desc.
                -> " &
                conn.errors(counter).description &
                "<P>"nextelse response.write
                "<B>Alterações gravadas com sucesso
                !!!</b>"response.write
                "<hr>"response.write
                "<br>" & "A consulta
                utilizada foi a seguinte: "response.write
                "<br>" & SQLresponse.write
                "<br>"response.write
                "<br>" & "Os novos dados
                são : "response.write
                "<br>"response.write
                "<br>" & "Codigo -
                " & codigoresponse.write
                "<br>" & "Nome - "
                & nomeresponse.write
                "<br>" & "Data de
                Nascimento - " & anoend if rs.closeset rs=nothingConn.Closeset 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