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: PrincipalArtigosSQL Server 2005 › Capítulo 11 : 15
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO

Autor: Júlio Battisti
Lição 196 - Capítulo 11 - UM EXEMPLO UTILIZANDO ODBC

Neste item, vamos utilizar a fonte ODBC, nwind, criada anteriormente, para criar uma página ASP que conecta o Banco de Dados Northwind.mdb do Access e mostra uma listagem de Clientes com as seguintes informações, da tabela Clientes:

•  Código do Cliente (CódigoDoCliente).

•  Cargo (CargoDoContato).

•  Endereço (Endereço).

•  Telefone (Telefone).

Nota: O nome entre parênteses é o nome do campo na tabela Clientes do Banco de Dados C:\Meus documentos\Northwind.mdb, o qual é o banco associado a fonte ODBC nwind.mdb. Caso você esteja utilizando outro Banco de Dados ou outra tabela, utilize os nomes de campo adequados.

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

SQL Server 2005 Completo - Julio Battisti
Figura 11.33 A tabela Clientes do Banco de Dados Northwind.

No Exemplo 11.3 apresentamos uma página ASP que faz a conexão com o Banco de Dados Northwind.mdb e exibe uma listagem de Clientes. Após a listagem explicaremos cada um dos comandos utilizados.

Nota: Crie este exemplo utilizando o editor de textos de sua preferência. Não inclua o número das linhas, os quais servem apenas para referência. Salve este exemplo na pasta C:\LivroSQL2005\Capitulo11, com o nome de Exemplo11-3.asp.

Exemplo 11.3 – Uma página ASP que conecta com o Banco de Dados Northwind – Exemplo11-3.asp.

1. <%@ Language=VBScript %>
     2 <HTML>     

3 <HEAD>

4 <TITLE>Clientes no Banco de Dados Northwind !</TITLE>

5 </HEAD>

6 <BODY>

7 <H1>

8 <FONT color=navy>Listagem de Clientes !!!</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.CódigoDoCliente, Clientes.CargoDoContato,

  Clientes.Endereço,Clientes.Telefone FROM Clientes”

21 ‘Esta instrução SQL retorna os campos CódigoDoCliente, CargoDoContato,

22 ‘Endereço e Telefone, 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 item, quando estudarmos o objeto RecordSet em detalhes.

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>Telefone</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(“CódigoDoCliente”)%></TD>

55 <TD align=middle bgColor=gray><%=Clientes.Fields(“CargoDoContato”)%></TD>

56 <TD align=middle bgColor=gray><%=Clientes.Fields(“Endereço”)%></TD>

57 <TD align=middle bgColor=gray><%=Clientes.Fields(“Telefone”)%></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 11.34.

SQL Server 2005 Completo - Julio Battisti
Figura 11.34 A listagem de clientes do Banco de Dados Northwind.mdb

Antes de comentarmos esta listagem gostaria, mais uma vez, de salientar a natureza dinâmica das páginas criadas com ASP. Neste exemplo, qualquer alteração que seja feita nos dados da tabela Clientes, refletirá na listagem de Clientes, na próxima vez que o usuário carregar a página Exemplo11-3.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 atualizada de Clientes e apresenta a listagem no formato de uma tabela, conforme definimos.

Agora vamos às explicações a respeito do código do Exemplo11.3. Embora existam diversos comentários na própria listagem, cabe aqui, alguns esclarecimentos. Vamos detalhar diversos trechos de código deste exemplo.

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 objeto 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 a 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 Northwind.mdb, conforme definido pala fonte ODBC nwind.

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

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

20 inst_sql=“SELECT Clientes.CódigoDoCliente,  Clientes.CargoDoContato,
Clientes.Endereço,Clientes.Telefone FROM  Clientes”

21 ‘Esta instrução SQL retorna os campos CódigoDoCliente, CargoDoContato,

22 ‘Endereço e Telefone, 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 ‘durante o estudo do objeto Recordset.

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 Northwind.mdb. Observe que é uma instrução SQL bastante simples, a qual, basicamente, seleciona os campos CódigoDoCliente, CargoDoContato, Endereço e Telefone da tabela Clientes do Banco de Dados Northwind.mdb.

Uma vez definida a instrução SQL, partimos para a criação de um objeto RecordSet. A criação deste objeto é feita na linha 26, onde é criado um 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 tópico.

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 Northwind. Cada registro tem quatro campos, conforme foi definido pela nossa instrução SQL, que somente retorna os campos CódigoDoCliente, CargoDoContato, Endereço e Telefone.

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 código descrito a seguir.

Trecho 4: Considere o seguinte trecho de 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 tem 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(“CódigoDoCliente”)%></TD>

55 <TD align=middle bgColor=gray><%=Clientes.Fields(“CargoDoContato”)%></TD>

56 <TD align=middle bgColor=gray><%=Clientes.Fields(“Endereço”)%></TD>

57 <TD align=middle bgColor=gray><%=Clientes.Fields(“Telefone”)%></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 irá tornar-se verdadeira quando o indicador de registro já estiver além do último registro, ou seja, após ter sido atingido o último registro do objeto RecordSet. 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(“CódigoDoCliente”)%></TD>     

55 <TD align=middle bgColor=gray><%=Clientes.Fields(“CargoDoContato”)%></TD>

56 <TD align=middle bgColor=gray><%=Clientes.Fields(“Endereço”)%></TD>

57 <TD align=middle bgColor=gray><%=Clientes.Fields(“Telefone”)%></TD>

58 </TR>

Observe o fragmento de código:

<%=Clientes.Fields(“CódigoDoCliente”)%>

Este fragmento retorna o valor do campo CódigoDoCliente do registro atual do Recordset Clientes. Com isso, vamos preenchendo cada coluna com os respectivos valores de cada campo de cada registro. A primeira coluna com o campo CódigoDoCliente, a segunda com o campo CargoDoContato 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.

Já vimos alguns exemplos nos quais utilizamos o objeto Recordset. Agora vamos estudá-lo em detalhes. Vamos falar sobre seus métodos, propriedades e eventos. Também veremos exemplos de utilização do objeto Recordset.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

 
 

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-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI