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 05 : 08
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 041 - Capítulo 05 - O primeiro exemplo

Neste item vamos utilizar o conhecimento que já temos para criar uma página ASP que conecta o Banco de dados Nwind e mostra uma listagem de Clientes com as seguintes informações:

  • Código do Cliente (CodigoDoCliente)
  • Cargo (Cargo)
  • Endereço (Endereco)
  • Telefone (Fone).

O nome entre parênteses é o nome do campo na tabela Clientes do Banco de dados Nwind. Caso você esteja utilizando outro Banco de dados ou outra tabela, utilize os nomes de campo adequados. O Banco de dados Nwind é um banco de exemplo que é instalado juntamente com o Microsoft Access.

Na Figura 5.33 podemos ver a estrutura da tabela Clientes que está sendo utilizada no nosso exemplo.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 5.33 A tabela Clientes do Banco de dados Nwind.

Pode acontecer que a estrutura do Nwind esteja em Inglês. Os nomes dos campos aparecem com CustomerID, City, Address e assim por diante. Utilize os nomes conforme os mesmos se apresentam na sua cópia do Banco de dados Nwind.mdb.

Na Listagem 5.1 apresentamos uma página ASP que faz a conexão com o Banco de dados Nwind e exibe uma listagem de Clientes. Após a Listagem explicaremos cada um dos comandos utilizados.

Listagem 5.1 – Uma página ASP que conecta com o Banco de dados Nwind – Clientes.asp.

1.         <%@ Language=VBScript %>

2          <HTML>

3          <HEAD>

4          <TITLE>Listagem de Clientes</TITLE>

5          </HEAD>

6          <BODY>

7          <H1>

8          <FONT color=navy>Clientes da Empresa ABC LTDA.</FONT>

9          </H1>

10        <%

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

12        'Para isto crio um objeto do tipo Connection

13        'Cria um Objeto do Tipo ADODB.Connection

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

15        'Agora abro uma conexão com a fonte ODBC "nwind"

16        'criada anteriormente.

             

17           conn.Open "nwind"

18        'O próximo passo é criar uma instrução SQL

19        ‘a qual é utilizada para criar a listagem de Clientes.

20        inst_sql="SELECT Clientes.CodigoCliente, Clientes.Cargo, Clientes.Endereco,        Clientes.Fone FROM Clientes"

21        'Esta instrução SQL retorna os campos CodigoCliente, Cargo,

22        'Endereco e Fone, da tabela Clientes.

23        'Agora criamos um Objeto RecordSet.

24        'Este Objeto irá executar a instrução SQL e

25        'receber o resultado da Consulta.

26        Set Clientes = Server.CreateObject("ADODB.Recordset")

27        'Agora executamos a Instrução SQL

28        ‘retornando os registros da tabela Clientes.

29        Clientes.Open inst_sql, conn, 3, 3

30        'Os dois últimos parâmetros serão discutidos

31        'no próximo Capítulo.

32        'Neste ponto já tenho todos os registros retornados

33        'pela instrução SQL. Estes registros estão armazenados

34        'no objeto Clientes, que é um objeto do tipo Recordset.

35        'Agora passo a montar a página que será retornada para o

36        'Navegador do Cliente. Vamos montar uma tabela com o

37        'resultado da consulta.

38        %>

39        <P>

40        <HR>

41        <TABLE bgColor=gray border=1 borderColor=navy cellPadding=1 cellSpacing=1 width="100%">

42        <TR>

43            <TD align=middle bgColor=gray>Código</TD>

44            <TD align=middle bgColor=gray>Cargo</TD>

45            <TD align=middle bgColor=gray>Endereço</TD>

46            <TD align=middle bgColor=gray>Fone</TD>

47        </TR>

48        <%

49        'Inicio um Loop para percorrer todos os registros

50        'do RecordSet Clientes, exibindo um Registro em

51        'cada Linha da tabela.

52        Do Until Clientes.eof %> 

53          <TR>

54             <TD align=middle bgColor=gray><%=Clientes.Fields("CodigoCliente")%></TD>

55             <TD align=middle bgColor=gray><%=Clientes.Fields("Cargo")%></TD>

56             <TD align=middle bgColor=gray><%=Clientes.Fields("Endereco")%></TD>

57             <TD align=middle bgColor=gray><%=Clientes.Fields("Fone")%></TD>

58          </TR>

59        <%

60        Clientes.MoveNext

61        loop %>

62        </TABLE>

63        </P>

64        <HR>

65        </BODY>

66        </HTML>

Ao carregar esta página no Internet Explorer, o usuário recebe uma listagem conforme indicado na Figura 5.34.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 5.34 A Listagem de Clientes do Banco de dados Nwind.

Antes de comentarmos esta listagem gostaria de salientar a natureza dinâmica das páginas criadas com ASP. Neste exemplo, qualquer alteração que seja feita na tabela Clientes, será exibida na listagem de Clientes, na próxima vez que o usuário carregar a página Clientes.asp. Isto acontece porque a listagem é montada, a partir do Banco de dados, cada vez que a página é carregada. Com isso ao carregar a página, todos os dados existentes na tabela Clientes serão exibidos. Por isso que dizemos que a página é criada dinamicamente, ou seja, cada vez que a página é solicitada, o código ASP estabelece a conexão com o Banco de dados, solicita a listagem de Clientes e apresenta a listagem no formato de uma tabela, conforme definimos.

Agora vamos as explicações a respeito do código da Listagem 5.1. Embora existam diversos comentários na própria listagem, cabe aqui, alguns esclarecimentos. Vamos detalhar diversos trechos de código desta Listagem, pois estaremos utilizando estas técnicas ao longo deste livro.

  • Trecho 1: Considere o seguinte trecho de código:

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

Esta linha cria um objeto Connection chamado conn. Poderíamos utilizar qualquer nome válido para este objeto. Um ponto importante a salientar é a utilização da instrução Set. Sempre que formos criar um objeto (Connection, Recordset, etc), devemos usar a instrução Set. Se não utilizarmos a instrução Set na criação de objetos, obteremos um erro na hora de carregar a página.

Também é importante observarmos o seguinte:

Server.CreateObject("ADODB.Connection")

Este código cria um Objeto no Servidor, sendo que este objeto é do tipo ADODB.Connection, ou seja, uma conexão ADO para Banco de dados.

Após a execução deste comando, um objeto Connection foi criado, porém o mesmo ainda não faz referência a nenhum Banco de dados específico.

  • Trecho 2: Considere o seguinte trecho de código:

15        'Agora abro uma conexão com a fonte ODBC "nwind"

16        'criada anteriormente.

17           conn.Open "nwind"

Na linha 17 estou associando a conexão conn com uma fonte ODBC nwind. Lembrando que esta fonte ODBC foi criada previamente. Caso você esteja utilizando uma fonte ODBC diferente, utilize o nome adequado. Esta associação é feita através do método Open, do objeto Connection. A partir deste momento, a minha conexão “conn” está associada ao Banco de dados Nwind, conforme definido pala fonte ODBC nwind.

  • Trecho 3: Considere o seguinte trecho de código.

Uma vez estabelecida a conexão é hora de recuperar dados, isto é, registros, a partir do Banco de dados. Isto é feito pelo seguinte trecho de código:

20        inst_sql="SELECT Clientes.CodigoCliente, Clientes.Cargo, Clientes.Endereco,        Clientes.Fone FROM Clientes"

21        'Esta instrução SQL retorna os campos CodigoCliente, Cargo,

22        'Endereco e Fone, da tabela Clientes.

23        'Agora criamos um Objeto RecordSet.

24        'Este Objeto irá executar a instrução SQL e

25        'receber o resultado da Consulta.

26        Set Clientes = Server.CreateObject("ADODB.Recordset")

27        'Agora executamos a Instrução SQL

28        ‘retornando os registros da tabela Clientes.

29        Clientes.Open inst_sql, conn, 3, 3

30        'Os dois últimos parâmetros serão discutidos

31        'no próximo Capítulo.

Na linha 20, simplesmente criamos uma variável chamada inst_sql, a qual contém a instrução SQL que será executada no Banco de dados Nwind. Observe que é uma instrução SQL bastante simples, a qual, basicamente, seleciona os campos CodigoCliente, Cargo, Endereco e Fone da tabela Clientes do Banco de dados Nwind.

Uma vez definida a instrução SQL, partimos para a criação de um objeto RecordSet. A criação do objeto RecordSet é feita na linha 26, onde é criado um objeto RecordSet chamado Clientes. Poderíamos ter escolhido qualquer nome para este objeto. Observe a utilização da instrução Set. Como estamos criando um objeto (do tipo RecordSet), devemos utilizar a instrução Set.

Agora devemos executar a instrução SQL, para que o objeto Recordset contenha os registros retornados pela instrução SQL. Isto é feito pelo seguinte código:

29        Clientes.Open inst_sql, conn, 3, 3

Neste caso utilizamos o método Open do objeto RecordSet Clientes. O primeiro parâmetro é a instrução SQL a ser utilizada – inst_sql. O segundo parâmetro é o nome da conexão a ser utilizada – conn. O terceiro e quatro parâmetros definem  comportamentos para o  objeto RecordSet, tais como se é possível mover-se para frente e para trás, avançando e voltando pelos registros, se os registros retornados são apenas para leitura ou para leitura e alterações e assim por diante. Estudaremos estas opções no próximo capítulo.

Bem, neste momento já temos um objeto RecordSet chamado Clientes, o qual possui uma série de registros obtidos a partir da tabela Clientes do Banco de dados Nwind. Cada registro possui quatro campos, conforme foi definido pela nossa instrução SQL que somente retorna os campos CodigoCliente, Cargo, Endereco e Fone.

  • Trecho 4: Considere o seguinte trecho de código.

Uma vez que o RecordSet Clientes foi criado com sucesso, é hora de criarmos uma tabela que exibe os dados do objeto RecordSet. Começamos criando a primeira linha da tabela, a qual irá conter o título das colunas. Isto é feito pelo seguinte código:

41        <TABLE bgColor=gray border=1 borderColor=navy cellPadding=1 cellSpacing=1 width="100%">

42        <TR>

43            <TD align=middle bgColor=gray>Código</TD>

44            <TD align=middle bgColor=gray>Cargo</TD>

45            <TD align=middle bgColor=gray>Endereço</TD>

46            <TD align=middle bgColor=gray>Fone</TD>

47        </TR>

Observe que para criar o cabeçalho da tabela, utilizamos código HTML puro. Veja que estamos criando uma tabela com quatro colunas. Vamos exibir um registro por linha, como cada registro possui quatro campos, precisamos de uma tabela com quatro colunas. Esta tabela terá tantas linhas quantos forem os registros do objeto Clientes.

A construção do corpo da tabela é feita com o seguinte trecho de código:

52        Do Until Clientes.eof %> 

53          <TR>

54             <TD align=middle bgColor=gray><%=Clientes.Fields("CodigoCliente")%></TD>

55             <TD align=middle bgColor=gray><%=Clientes.Fields("Cargo")%></TD>

56             <TD align=middle bgColor=gray><%=Clientes.Fields("Endereco")%></TD>

57             <TD align=middle bgColor=gray><%=Clientes.Fields("Fone")%></TD>

58          </TR>

59        <%

60        Clientes.MoveNext

61        loop %>

62        </TABLE>

Na linha 52, iniciamos um laço Do Until Condição... Loop. Como condição utilizamos a propriedade Eof do objeto Clientes. O laço continua sendo executado até que a condição Clientes.eof, se torne verdadeira. Esta condição somente ira tornar-se verdadeira quando o indicador de registro já estiver além do último registro. Com isso o laço somente será encerrado depois que tivermos percorrido todos os registros do objeto Clientes, que é exatamente o que queremos.

Para cada registro é criada uma nova linha na tabela. Isto é feito pelo seguinte trecho de código:

53          <TR>

54             <TD align=middle bgColor=gray><%=Clientes.Fields("CodigoCliente")%></TD>

55             <TD align=middle bgColor=gray><%=Clientes.Fields("Cargo")%></TD>

56             <TD align=middle bgColor=gray><%=Clientes.Fields("Endereco")%></TD>

57             <TD align=middle bgColor=gray><%=Clientes.Fields("Fone")%></TD>

58          </TR>

Observe o seguinte fragmento de código:

<%=Clientes.Fields("CodigoCliente")%>

Este fragmento retorna o valor do campo CodigoCliente do registro atual do Recordset Clientes. Com isso vamos preenchendo cada  coluna com os respectivos valores. A primeira coluna com o campo CodigoCliente, a segunda com o campo Cargo e assim por diante. Neste caso utilizamos a coleção Fields do RecordSet Clientes, a qual nos dá acesso aos campos individuais de cada registro.

As linhas seguintes são de grande importância:

59        <%

60        Clientes.MoveNext

61        loop %>

62        </TABLE>

Se não colocássemos a linha 60, esta página ASP entraria em Loop Infinito e somente o primeiro registro seria exibido repetidamente, até congelar a página. Quando criamos um objeto RecordSet, por padrão, o indicador de registro é posicionado no primeiro registro. Utilizamos o método MoveNext para mover o indicador para o próximo registro. Com isso, a cada passagem do Laço Do Until, o indicador é posicionado no próximo registro, até o momento em que todos os registros foram percorridos. Se não houvesse esta linha, o indicador ficaria sempre no primeiro registro e o laço nunca seria encerrado, pois a condição Clientes.eof seria sempre verdadeira, impedindo que o laço fosse encerrado. A linha 62 é simplesmente a tag HTML de fechamento da tabela.

Modificando um pouco o nosso exemplo.

Vamos fazer uma pequena modificação no exemplo anterior, com o objetivo de salientar a importância de conhecermos a linguagem SQL. Conforme podemos observar pela Figura 5.34, a listagem foi exibida na mesma ordem em que a mesma encontrava-se na tabela Clientes, isto é, ordenada pelo campo CodigoCliente. Mas vamos supor que fosse necessária uma listagem ordenada pelo campo Cargo. Como faríamos isso ?

Muito simples, basta modificar a instrução SQL para incluir a ordenação. Isto é feito, modificando-se a linha 20 da Listagem 5.1. A nova instrução SQL, já ordenando pelo campo Cargo ficaria assim:

20        inst_sql="SELECT Clientes.CodigoCliente, Clientes.Cargo, Clientes.Endereco,        Clientes.Fone FROM Clientes ORDER BY Clientes.Cargo"

Feita esta alteração, ao acessarmos esta página no Internet Explorer, obteremos o resultado indicado na Figura 5.35.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 5.35 A Listagem de Clientes do Banco de dados Nwind, ordenada pelo campo Cargo.

Observe que uma simples modificação na instrução SQL já produz os resultados desejados.

Também poderíamos sugerir outra alteração. Vamos supor que foi solicitado que retirássemos o campo Fone e incluíssemos o campo Fax. Esta mudança também é extremamente simples. Bastaria alterar as seguintes linhas:

  • A instrução SQL na linha 20 ficaria assim:

20        inst_sql="SELECT Clientes.CodigoCliente, Clientes.Cargo, Clientes.Endereco, Clientes.Fax FROM Clientes ORDER BY Clientes.Cargo"

  • O cabeçalho da quarto coluna, na linha 46 ficaria assim:

46            <TD align=middle bgColor=gray>Fax</TD>

  • Na linha 57 basca trocar o nome do campo de Fone para Fax, conforme indicado:

57             <TD align=middle bgColor=gray><%=Clientes.Fields("Fax")%></TD>

Com estas três alterações, obteremos os resultados indicados na Figura 5.36.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 5.36 A Listagem de Clientes do Banco de dados Nwind, com o campo Fax.

Com a utilização de SQL e ASP fica fácil fazer alterações em nossas páginas.

A partir do próximo item estudaremos com um pouco mais de detalhes o objeto Connection. Ainda neste capítulo, aprenderemos a criar um formulário onde o usuário pode digitar um critério e pesquisar registros que atendam o critério digitado. Conforme descrito, continuaremos fazendo uso de Objetos RecordSet, embora somente iremos estudar os mesmos, em detalhes, no próximo capítulo.


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