AS EMPRESAS ESTÃO "DESESPERADAS" POR ESTE TIPO DE PROFISSIONAL... - VOCÊ É UM DELES?
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI - O Conhecimento que Vira Dinheiro - CLIQUE AQUI
| « Lição anterior | Δ Página principal | ¤ Capítulos | 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.
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.
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 | Δ Página principal | ¤ Capítulos | Próxima lição » |
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
Aplica-se ao Access 2019, 2016, 2013 e 2010!
Para todos os detalhes, acesse:
|
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI (Online, Vitalício, Prático e Atualizado)! |
|
|
NÃO PROCURE VAGAS, SEJA PROCURADO! |
|
Para Todos os Detalhes, Acesse:
https://juliobattisti.com.br/curso-infra-ti.asp
|
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-2026 ®
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