Percorrido genérico por um recordset com ASP

Script ASP que realiza um percorrido por um conjunto de registros ou recordset (RS), mostrando todos os registros e todos os campos de cada registro.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 03/7/07
Valorize este artigo:
Neste workshop de ASP vamos realizar uma consulta a uma tabela de um banco de dados para poder tirar um conjunto de registros. Logo, vamos fazer um percorrido por esse conjunto de registros genéricos, sem importar os nomes dos campos e o número de registros ou de campos, mostrando todos os dados extraídos no recordset. A consulta que realizarmos sobre a tabela será indiferente, ou seja, o script está preparado para realizar o percorrido seja qual for o conjunto de registros resultante e os nomes dos campos.

O objetivo é mostrar todos os dados do recordset em uma tabela. Na primeira fila da tabela colocaremos os nomes dos campos que tem cada registro e nas seguintes filas, os valores dos campos de cada registro obtido na consulta.

Lembremos que as explicações sobre conectar e trabalhar com um banco de dados estão em nosso manual de ASP.

O primeiro pedaço de código é uma conexão com o banco de dados por meio de DSN e a execução de uma sentença SQL.

'conecto BD e gero RS
set conn = server.createobject("adodb.connection")
conn.open "meuDSN"
sSQL="select * from tabela"
set rs=conn.execute(sSQL)


Uma vez criado o recordset na variável "rs", temos que escrever o cabeçalho da tabela com os nomes dos campos que tem cada registro recebido.

'nomes dos campos como cabecalho da tabela
response.write "<table border='1'><tr>"
for i = 0 to rs.fields.Count - 1
   response.write "<th align='center' bgcolor='#eeeeee'>"
   response.write rs.fields(i).name
    response.write "</th>"
next
response.write "</tr>"

No código anterior se realizou um percorrido a cada um dos campos do primeiro registro do recordset e para cada um deles foi escrito seu nome, armazenando em rs.fields(i).name, a propriedade name do campo. Assim, mostraremos uma célula por cada nome dos campos do registro.

O passo seguinte será mostrar o conteúdo de cada um dos registros, realizando um percorrido genérico por todo o recordset.

'agora, para cada registro
while not rs.EOF
    response.write "<tr>"
   'mostro todos os campos que tem
    for i = 0 to rs.fields.Count - 1
       response.write "<td>" & rs.fields(i) & "</td>"
    next
    response.write "</tr>"
    rs.movenext
wend
response.write "</table>"

O loop "while not rs.EOF" é para percorrer cada registro. Para cada registro cria-se uma fila. Logo, acrescenta-se outro loop "for i = 0 to rs.fields.Count" para percorrer cada campo do registro. Para cada campo escreve-se o valor em uma coluna. Para terminar, fecha-se a tabela.

O script já terminou. Só nos resta fechar as conexões com o banco de dados.

'fecho o bd e o recordset
rs.close
conn.Close


Podemos ver o código fonte completo a seguir:

<%
'conecto BD e gero RS
set conn = server.createobject("adodb.connection")
conn.open "meuDSN"
sSQL="select * from tabela"
set rs=conn.execute(sSQL)

'nomes dos campos como cabecalho da tabela
response.write "<table border='1'><tr>"
for i = 0 to rs.fields.Count - 1
   response.write "<th align='center' bgcolor='#eeeeee'>"
    response.write rs.fields(i).name
    response.write "</th>"
next
response.write "</tr>"
'agora, para cada registro
while not rs.EOF
    response.write "<tr>"
   'mostro todos os campos que tem
    for i = 0 to rs.fields.Count - 1
    response.write "<td>" & rs.fields(i) & "</td>"
    next
    response.write "</tr>"
    rs.movenext
wend
response.write "</table>"

'fecho o bd e o recordset
rs.close
conn.Close
%>





Comentários do artigo
Foram enviados 4 comentários ao artigo
4 comentários não revisados
0 comentários revisados

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato