NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigos › ASP 3.0 › Capítulo 06 : 06
Quer receber novidades e e-books gratuitos?
« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
SITES DINÂMICOS COM ASP 3.0 - CURSO COMPLETO
Autor: Júlio Battisti


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


Lição 050 - Capítulo 06 - Editando registros em um Banco de dados

Neste tópico aprenderemos a criar uma página ASP que atualiza um registro do Banco de dados.

Nosso exemplo será composto dos seguintes elementos:

  • Uma página ASP – produto.asp, onde temos um campo com a listagem de Produtos disponíveis na tabela Produtos, do Banco de dados Nwind. Este listagem será construída dinamicamente, isto é, cada vez que a página for carregada, a listagem será construída a partir das informações disponíveis na tabela Produtos.
  • Após selecionar o produto a ser alterado, o usuário clica em um botão “Localizar produto”. Feito isso, a página produto.asp chama uma página chamada localiza.asp, a qual localiza o registro selecionado no Banco de dados. Com isso, o usuário pode alterar os dados do produto.
  • Após alterar os dados desejados, o usuário clica em um botão “Atualizar produto”. Feito isso, a página localiza.asp chama a página atualiza.asp, a qual acessa o Banco de dados e faz as alterações solicitadas pelo usuário. Ao final é emitida uma mensagem indicando que os dados foram atualizados com sucesso.

Existem maneiras mais simples para executar este procedimento. Optei pela utilização de três páginas, para que os passos envolvidos ficassem bem claros. O código ASP também foi desenvolvido de uma maneira didática, visando facilitar o entendimento do mesmo.

A página ASP para selecionar o produto a ser alterado – produto.asp.

Na Listagem 6.4 temos o código ASP para a criação da página produto.asp.

Listagem 6.4 – O Página ASP para selecionar o produto a ser alterado – produto.asp.

1          <%@ Language=VBScript %>

2          <HTML>

3          <HEAD>

4          <TITLE>Selecione o produto a ser alterado.</TITLE>

5          </HEAD>

6          <BODY>

7          <%

8          'O Primeiro passo é criar a conexão com o Banco de dados.

9          'Para isto crio um objeto do tipo Connection.

10        'Cria um Objeto do Tipo ADODB.Connection

11        Set conn=Server.CreateObject("ADODB.Connection")

12        'Agora abro uma conexão com o arquivo nwind.mdb

13        'utilizando OLE DB.

             

14        conn.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

            DATA             SOURCE=c:\meus documentos\nwind.mdb"

15        conn.Open

16        'Agora criamos um Objeto RecordSet.

17        'Este Objeto irá acessar o campo ProductName

18        'da tabela Produtos

19        Set Produtos = Server.CreateObject("ADODB.Recordset")

20        Produtos.Open "Select ProductName from Produtos Order By ProductName", conn, 3, 3

21        'Neste ponto tenho o objeto Cadastro ligado com a tabela

22        'Produtos do Banco de dados nwind.mdb.

23        %>

24        <P><B>Selecione o produto a ser alterado.</B></P>

25        <P><B><I>Depois clique no botão Localizar Produto.</I></B></P>

26        <FORM action=localiza.asp method=post>

27        <SELECT id=listaprodutos name=listaprodutos>

28        <%

29        'Agora construo a lista de opções a partir dos

30        'dados obtidos da tabela Produtos.

31        'Para cada produto obtido, crio uma nova opção

32        'na lista.

33        Do While Not Produtos.EOF

34           Response.Write "<OPTION value=" & Chr(34) & Produtos.Fields("ProductName") &        Chr(34) & ">" & Produtos.Fields("ProductName")& "</OPTION>"

35           Produtos.MoveNext 

36        Loop

37        %>

38        </SELECT>

39        <BR>

40        <BR>

41        <HR>

42        <INPUT type="submit" value="Localizar Produto" id=Localizar name=Localizar>

43        </FORM>

44        </BODY>

45        </HTML>

Para esta listagem vamos comentar apenas o código ASP que constrói a lista com os nomes de produtos disponíveis.

Lembrando da nossa revisão de HTML, o código para construir uma Caixa de combinação é o seguinte:

  <SELECT id=select1 name=Item1>

        <OPTION value=Item1>Item1</OPTION>

        <OPTION value=Item2>Item2</OPTION>

        <OPTION value=Item3>Item3</OPTION>

  </SELECT>

Neste exemplo temos uma lista com três ítens. Para cada produto encontrado devemos criar um item da lista, o que é feito com as tags <OPTION> </OPTION>. Por exemplo, para o produto “Alice Mutton”, teríamos que criar a seguinte opção:

<OPTION value="Alice Mutton">Alice Mutton</OPTION>

A primeira vez que aparece o nome – value=Alice Mutton, é a designação do nome associado com cada opção. Na segunda vez que aparece o nome, é a definição do texto que será exibido na lista. Para construir esta lista dinamicamente, utilizamos o seguinte código ASP:

33        Do While Not Produtos.EOF

34            Response.Write "<OPTION value=" & Chr(34) & Produtos.Fields("ProductName") &  Chr(34) & ">" & Produtos.Fields("ProductName")& "</OPTION>"

35            Produtos.MoveNext 

36        Loop

Para preencher a lista com os nomes do produto, utilizamos Produtos.Fields(“ProductName”), com isso, vou construindo uma nova opção da lista, para cada nome de produto encontrado na tabela Produtos. È justamente isto que queremos. A construção dinâmica de listas é bastante útil, sendo que esta técnica pode ser aplicada em diversas situações práticas no desenvolvimento de aplicações Web.

Observe que utilizamos Chr(34) antes e depois de Produtos.Fields("ProductName"), na definição do atributo value, conforme indicado abaixo:

Chr(34) & Produtos.Fields("ProductName") & Chr(34)

Isto é feito para tratar o caso de nomes de produtos que tem espaço em branco no nome. Se não utilizássemos as aspas (Chr(34)), somente o primeiro nome do produto seria utilizado. Por exemplo, um produto Chá mate, seria truncado em Chá. Com isso, na hora de pesquisar o nome do produto, não iríamos encontrá-lo na tabela Produtos.

Ao carregarmos a página produto.asp, obteremos o resultado indicado na Figura 6.9.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.9 A página produto.asp.

Nesta página o usuário seleciona o produto a ser alterado, conforme indicado na Figura 6.10, onde o usuário selecionou o produto Camembert Pierrot. Após selecionar o produto, o usuário clica no botão Localizar Produto. Ao fazer isso é chamada a página localiza.asp, a qual irá carregar o registro correspondente ao produto selecionado.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.10 O usuário seleciona um produto na Lista de produtos.

A página que localiza o registro do produto a ser atualizado – localiza.asp.

A página localiza.asp é indicada na Listagem 6.5.

Listagem 6.5 – O Página ASP que carrega o registro a ser alterado.

1          <%@ Language=VBScript %>

2          <HTML>

3          <HEAD>

4          </HEAD>

5          <TITLE>Altere os dados do produto.</TITLE>

6          <BODY>

7          <%

8          'O Primeiro passo é criar a conexão com o Banco de dados.

9          'Para isto crio um objeto do tipo Connection.

10        'Cria um Objeto do Tipo ADODB.Connection

11        Set conn=Server.CreateObject("ADODB.Connection")

12        'Agora abro uma conexão com o arquivo nwind.mdb

13        'utilizando OLE DB.

             

14        conn.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

            DATA SOURCE=c:\meus documentos\nwind.mdb"

15        conn.Open

16        'Agora criamos um Objeto RecordSet.

17        'Este Objeto irá acessar os campos da tabela Produtos.

18        'da tabela Produtos

19        Set Produtos = Server.CreateObject("ADODB.Recordset")

20        inst_sql="Select * from Produtos WHERE Produtos.ProductName='" &       Request.Form("listaprodutos")& "'"

21        Produtos.Open inst_sql,conn,3,3

22        'Neste ponto tenho o objeto Cadastro ligado com a tabela

23        'Produtos do Banco de dados nwind.mdb.

24        %>

25        <P><FONT color=navy size=5><STRONG>Altere os campos que

            forem necessários.</STRONG></FONT></P>

26        <P><I><B><FONT size=4>

            Depois clique no botão Atualizar Produto</FONT>.</B></I></P>

27        <FORM action=atualiza.asp method=post>

28        <%

29        'Agora construo o formulário e exibo os dados

30        'do produto para que o usuário possa alterar

31        'os campos que forem necessários.

32        %>

33        <TABLE>

34        <%

35        Response.Write "<TR><TD>Código:</TD><TD><INPUT id=ProductID maxLength=10      name=ProductID size=10 value=" & Chr(34)& Produtos.Fields("ProductID") & Chr(34)&      "></TD></TR>"

36        Response.Write "<TR><TD>Nome  :</TD><TD><INPUT id=ProductName             maxLength=35 name=ProductName size=35 value=" & Chr(34)&    Produtos.Fields("ProductName") & Chr(34)& "></TD></TR>"

37        Response.Write "<TR><TD>Fornecedor:</TD><TD><INPUT id=SupplierID           maxLength=30 name=SupplierID size=15 value=" & Chr(34) &        Produtos.Fields("SupplierID") & Chr(34) & "></TD></TR>"

38        Response.Write "<TR><TD>Categoria:</TD><TD><INPUT id=CategoryID             maxLength=10 name=CategoryID size=10 value=" & Chr(34) &       Produtos.Fields("CategoryID") & Chr(34) & "></TD></TR>"

40        Response.Write "<TR><TD>Quant/unid:</TD><TD><INPUT id=QuantityPerUnit   maxLength=20 name=QuantityPerUnit size=20 value=" & Chr(34) &           Produtos.Fields("QuantityPerUnit") & Chr(34) & "></TD></TR>"

41        Response.Write "<TR><TD>Preço Unit:</TD><TD><INPUT id=UnitPrice 42          maxLength=10 name=UnitPrice size=10 value=" & Chr(34) & 43     Produtos.Fields("UnitPrice") & Chr(34) & "></TD></TR>"

42        Response.Write "<TR><TD>Estoque:</TD><TD><INPUT id=UnitsInStock             maxLength=10 name=UnitsInStock size=10 value=" & Chr(34) &    Produtos.Fields("UnitsInStock") & Chr(34) & "></TD></TR>"

43        Response.Write "<TR><TD>Unid. Pedid:</TD><TD><INPUT id=UnitsOnOrder     maxLength=10 name=UnitsOnOrder size=10 value=" & Chr(34) & 45         Produtos.Fields("UnitsOnOrder") & Chr(34) & "></TD></TR>"

44        Response.Write "<TR><TD>Nível Ordenação:</TD><TD><INPUT id=ReorderLevel          maxLength=10 name=ReorderLevel size=10 value=" & Chr(34) &   Produtos.Fields("ReorderLevel") & Chr(34) & "></TD></TR>"

45        Response.Write "<TR><TD>Descontinuado:</TD><TD><INPUT id=Discontinued             maxLength=10 name=Discontinued size=10 value=" & Chr(34) &    Produtos.Fields("Discontinued") & Chr(34) & "></TD></TR>"

46        %>

47        </TABLE>

48        <BR>

49        <HR>

50        <INPUT type="submit" value="Atualizar Produto" id=Atualizar name=Atualizar>

51        </FORM>

52        </BODY>

53        </HTML>

Algumas linhas aparecem divididas em duas ou mais linhas. Nunca é demais lembrar que estas linhas devem ser digitadas como uma linha única. As mesmas estão exibidas em duas ou mais linhas apenas por questão de espaço.

Alguns comentários sobre o código:

  • Primeiro vamos tratar da construção da instrução SQL, conforme indicado no seguinte trecho de código:

20        inst_sql="Select * from Produtos WHERE Produtos.ProductName='" &       Request.Form("listaprodutos")& "'"

Esta é uma instrução SQL que utiliza a cláusula WHERE, para pesquisar apenas o registro cujo nome do produto foi selecionado na lista de produtos. Vamos supor que o usuário tenha selecionado o produto Geitost. A instrução SQL para localizar o registro para este produto, deve ser a seguinte:

Select * from Produtos WHERE Produtos.ProductName='Geitost'

Observe no código da linha 20 que colocamos o apóstrofe logo após o sinal de igual (=), depois utilizamos Request.Form(“listaprodutos”), para capturar o valor do produto que o usuário selecionou na lista de produtos e, finalmente, anexamos o apóstrofe final (“ ‘ “). Com isso o código ASP monta a instrução SQL correta, seja qual for o produto selecionado na lista de produtos.

Um detalhe importante a ser observado é que o critério, quando for um campo de texto, deve vir entre os sinais de apóstrofe. Já para um campo do tipo  data, o critério deve vir entre os sinais #.

Uma vez montada a instrução SQL corretamente, a mesma é passada como parâmetro para o método Open do RecordSet Produtos. Com isso apenas o registro para o produto selecionado, será retornado pelo Banco de dados.

  • Após termos recuperado o registro para o produto selecionado, passamos a montar um formulário, onde são exibidos os diversos campos do produto selecionado. Observe que utilizamos uma tabela para facilitar o posicionamento e o alinhamento dos campos. Cada uma das linhas da tabela, possui duas colunas: uma onde vai a descrição do campo e outra que exibe o campo propriamente dito. No exemplo abaixo, é montada a primeira linha da tabela, onde é exibido o campo ProductID:

35        Response.Write "<TR><TD>Código:</TD><TD><INPUT id=ProductID maxLength=10      name=ProductID size=10 value=" & Chr(34)& Produtos.Fields("ProductID") & Chr(34)&      "></TD></TR>"

Uma linha semelhante é utilizada para todos os demais campos do produto selecionado.

  • Na figura 6.11, o usuário selecionou o produto Queso Cabrales.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.11 O usuário seleciona o produto a ser alterado.

Ao clicar no botão “Localizar Produto”, será chamada a página localiza.asp, a qual localiza o registro do produto selecionado e exibe o mesmo em um formulário, para que o usuário possa alterar os campos que forem necessários, conforme indicado na Figura 6.12:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.12 O usuário pode alterar quaisquer campos do produto.

O usuário pode alterar um ou mais campos, simplesmente clicando no campo e digitando um novo valor. Após ter alterado os campos necessários, é só clicar no botão “Atualizar Produto”, que os dados para o produto serão atualizados na tabela Produtos do Banco de dados nwind.mdb.

A página que atualiza os dados na tabela Produtos do Banco de dados nwind.mdb – atualiza.mdb.

Quando o usuário clica no botão “Atualizar Produto” é chamada a página atualiza.mdb, a qual é indicada na Listagem 6.6.

Listagem 6.6 – O Página ASP que atualiza os dados no Banco de dados – atualiza.asp.

1          <%@ Language=VBScript %>

2          <HTML>

3          <HEAD>

4          </HEAD>

5          <TITLE>Dados atualizados com sucesso.</TITLE>

6          <BODY>

7          <%

8          'O Primeiro passo é criar a conexão com o Banco de dados.

9          'Para isto crio um objeto do tipo Connection.

10        'Cria um Objeto do Tipo ADODB.Connection

11        Set conn=Server.CreateObject("ADODB.Connection")

12        'Agora abro uma conexão com o arquivo nwind.mdb

13        'utilizando OLE DB.

             

14        conn.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

            DATA SOURCE=c:\meus documentos\nwind.mdb"

15           conn.Open

16        'Agora criamos um Objeto RecordSet.

17        'Este Objeto irá acessar o registro do Produto

18        'que será alterado.

19        Set Produtos = Server.CreateObject("ADODB.Recordset")

20        inst_sql="Select * from Produtos WHERE Produtos.ProductName='" &       Request.Form("ProductName")& "'"

21        Produtos.Open inst_sql,conn,3,3

22        'Começo a alterar os campos do registro

23        Produtos.Fields("ProductName")= Request.Form("ProductName")

24        Produtos.Fields("SupplierID")= Request.Form("SupplierID")

25        Produtos.Fields("CategoryID")= Request.Form("CategoryID")

26        Produtos.Fields("QuantityPerUnit")= Request.Form("QuantityPerUnit")

27        Produtos.Fields("UnitPrice")= Request.Form("UnitPrice")

28        Produtos.Fields("UnitsInStock")= Request.Form("UnitsInStock")

29        Produtos.Fields("UnitsOnOrder")= Request.Form("UnitsOnOrder")

30        Produtos.Fields("ReorderLevel")= Request.Form("ReorderLevel")

31        Produtos.Fields("Discontinued")= Cbool(Request.Form("Discontinued"))

32        'Atualizo o registro, utilizando o método Update.

33        Produtos.Update

34        Response.Write "PRODUTO : "

35        Response.Write Request.Form("ProductName")

36        Response.Write " Atualizado com sucesso <BR>"

37        Response.Write "<HR>"

38        %>

39        <A HREF=produto.asp>Clique aqui para atualizar outro produto</A>

40        </BODY>

41        </HTML>

Para atualizar o registro utilizamos o seguinte código:

23        Produtos.Fields("ProductName")= Request.Form("ProductName")

24        Produtos.Fields("SupplierID")= Request.Form("SupplierID")

25        Produtos.Fields("CategoryID")= Request.Form("CategoryID")

26        Produtos.Fields("QuantityPerUnit")= Request.Form("QuantityPerUnit")

27        Produtos.Fields("UnitPrice")= Request.Form("UnitPrice")

28        Produtos.Fields("UnitsInStock")= Request.Form("UnitsInStock")

29        Produtos.Fields("UnitsOnOrder")= Request.Form("UnitsOnOrder")

30        Produtos.Fields("ReorderLevel")= Request.Form("ReorderLevel")

31        Produtos.Fields("Discontinued")= Cbool(Request.Form("Discontinued"))

32        'Atualizo o registro, utilizando o método Update.

33        Produtos.Update

Cada campo do registro recebe o valor contido no campo respectivo do formulário da Figura 6.12. Depois utilizamos o método Update para atualizar o registro. No momento que chamamos o método Update é que as atualizações são gravadas no Banco de dados.

Utilizando o nosso exemplo de alteração de registro:

Vamos utilizar o nosso exemplo, passo a passo, para que possamos visualizar o funcionamento completo do mesmo. Conforme indicado na Figura 6.13, carregamos a página produto.asp e selecionamos o produto Ravioli Angelo.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.13 Selecionando o produto Ravioli Angelo.

Ao clicarmos no botão Localizar Produto, é carregada a página localiza.asp, a qual nos exibe os campos do produto Ravioli Angelo, conforme indicado na Figura 6.14.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.14 O registro do produto Ravioli Angelo foi localizado.

Nesta página vamos alterar o valor do campo Preço Unit. Vamos alterar de 19,52 para 25,34, conforme indicado na Figura 6.15.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.15 Alterando o valor do campo Preço Unit.

Ao clicar no botão “Atualizar Produto”, é chamada a página atualiza.asp, a qual faz as atualizações no Banco de dados, exibe uma mensagem de que as atualizações foram feitas com sucesso e apresente um link para que o usuário possa voltar para a página produto.asp para selecionar um outro produto a ser atualizado, conforme indicado na Figura 6.16.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.16 Os dados foram alterados com sucesso.

Na Figura 6.17, abrimos a tabela Produtos do  Banco de dados C:\meus documentos\nwind.mdb, na qual podemos comprovar que o Preço Unitário para o produto Ravioli Angelo foi realmente alterado para 25,34.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 6.17 Comprovando as alterações efetuadas.

Veja que através da utilização de ASP podemos construir aplicações Web com as mesmas funcionalidades de Banco de dados existentes em aplicações tradicionais. Podemos inserir, pesquisar e alterar registros. No próximo item aprenderemos a eliminar registros, utilizando ASP.


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI