Conectando-se a um banco de dados Access através do ASP – Parte 2

Aprenda a realizar operações básicas envolvendo bancos de dados com o ASP.

Continuando o post anterior, veremos como listar os registros existentes em uma tabela no banco. Antes de qualquer coisa, verifique se você baixou o banco de dados de exemplo citado no post anterior, pois ele será necessário agora.

A última coisa que fizemos foi a criação de um novo arquivo “ASP VBScript” no Dreamweaver, o qual acrescentamos as seguintes linhas no topo (a primeira já existe):


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("banco.mdb")&";"
Set registros = Server.CreateObject ("ADODB.Recordset")
registros.Open "usuarios",conexao,3,3
%>

Com a utilização do método “Open” do objeto “registros”, este passa a se comportar como um array, ou seja, pode ter seus valores acessados através de índices. Mas que índices são esses? E quais seriam os valores? Resposta: os índices correspondem aos nomes dos campos existentes na tabela de nome “usuarios”. E os valores armazenados no array são os valores do registro para cada campo. Veja na prática, acrescentando as seguintes linhas ao body do documento:


<body>
<%=registros("codigo") & " "%>
<%=registros("nome") & " "%>
<%=registros("email") & " "%>
<%=registros("datanasc")%>
</body>

O que fizemos foi escrever o conteúdo de cada um dos campos especificados. Perceba que os valores exibidos correspondem a apenas um registro. Na verdade, o primeiro registro da tabela. Podemos exibir os demais utilizando um método existente para o objeto “registros”: o MoveNext. Vejamos seu funcionamento:


<body>
<%=registros("codigo") & " "%>
<%=registros("nome") & " "%>
<%=registros("email") & " "%>
<%=registros("datanasc")%>
<% registros.MoveNext %>
<%="<br />"%>
<%=registros("codigo") & " "%>
<%=registros("nome") & " "%>
<%=registros("email") & " "%>
<%=registros("datanasc")%>
<% registros.MoveNext %>
<%="<br />"%>
<%=registros("codigo") & " "%>
<%=registros("nome") & " "%>
<%=registros("email") & " "%>
<%=registros("datanasc")%>
</body>

Perceba que a cada uso do MoveNext, passamos a trabalhar com o próximo registro. Logo, apesar de estarmos apenas repetindo os mesmos comandos, a cada repetição exibimos os valores de um registro diferente.

É claro que nem de longe este código está prático. Da forma como foi criado, seria necessário copiar e colar os blocos de código repetidos tantas vezes quantos fossem os registros – portanto o código poderia crescer indefinidamente. Bom, é para isso que servem as estruturas de repetição. Podemos repetir os blocos de código até que atinjamos o fim dos registros. Como isso é possível? Através da propriedade EOF, também presente no objeto “registros”. Esta é um propriedade booleana: é verdadeira quando se chega ao fim da tabela e falsa em caso contrário. Logo, o código final poderia ficar assim:


<body>
<%
' Até chegarmos ao fim da tabela...
Do Until registros.EOF
' ...escreveremos os dados do registro atual
%>
<%=registros("codigo") & " "%>
<%=registros("nome") & " "%>
<%=registros("email") & " "%>
<%=registros("datanasc")%>
<%="<br />"%>
<% registros.MoveNext %>
<% Loop %>
</body>

Exercício: organize os dados dos registros exibindo-os dentro de uma tabela (<table>). Dica: substitua os espaços em branco e a quebra de linha pelas tags <td> e <tr> (abra-as e feche-as corretamente).

Por hoje é só, pessoal. Em breve continuarei este artigo demonstrando como inserir novos registros em uma tabela.

2 Respostas para “Conectando-se a um banco de dados Access através do ASP – Parte 2”

  1. Pgdpatrick Disse:

    Olá.
    espero anciosamente pela continuação do artigo pois estou precisando muito.
    Obrigado pela disposição de estar disponibilizando o seu conhecimento para quem precisa.

    Obrigado.

  2. Misa Disse:

    Olá,
    eu fiz um sitezinho em html para um trabalho da escola e nele tem uma página de cadastro, nessa página e queria que os dados fosse armazenados em um BD.
    Como eu poderia fazer isso? Eu nunca usei o Dreamweaver, teria algum outro recurso disponivel para isso?

    Obrigada.

Deixe um comentário