Muitos programadores ASP tiveram a experiência de executar consultas de banco de dados e depois exibir os resultados da consulta em tabelas HTML. Geralmente fazemos isso:
| Aqui está uma citação: <% 'Criar conexão/conjunto de registros 'Preencher dados no objeto recordset %> <TABELA> <% Fazer enquanto não rs.EOF %> <TR> <TD ><%=rs(Campo1)% </TD> <TD ><%=rs(Campo2)% </TD> . </TR> <% rs.MoveNext Ciclo %> </TABELA> |
Se houver muitos resultados de consulta, o servidor levará muito tempo para interpretar seu script ASP porque há muitas instruções Response.Write para processar se você colocar todos os resultados de saída em uma sequência longa (de para). , então o servidor só precisa interpretar a instrução Response.Write uma vez e será muito mais rápido. Alguns caras competentes da Microsoft transformaram a ideia em realidade (observe que esse é um recurso disponível apenas no ADO 2.0 e superior. Se você ainda estiver usando a versão anterior, atualize para a versão mais recente)
Com o método GetString, podemos usar apenas um Response.Write para exibir toda a saída. É como um loop DO... LOOP que pode determinar se o Recordset é EOF.
O uso de GetString é o seguinte (todos os parâmetros são opcionais):
String = recordset.GetString (StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
Para gerar uma tabela HTML a partir dos resultados do Recordset, precisamos nos preocupar apenas com 3 dos 5 parâmetros do GetString:
ColumnDelimiter (o código HTML que separa as colunas do conjunto de registros), RowDelimiter (o código HTML que separa as linhas do conjunto de registros) e NullExpr (o código HTML que deve ser gerado quando o registro atual estiver vazio). Como você pode ver no exemplo de geração de uma tabela HTML abaixo, cada coluna é separada por... e cada linha é separada por.... Código de exemplo:
| Aqui está uma citação: <%@LANGUAGE=VBSCRIPT%> <% Opção Explícita 'Boa técnica de codificação 'Estabelece conexão com o banco de dados Dim conexão Definir conexão = Server.CreateObject(ADODB.Connection) conn.Open DSN=Northwind; 'Cria um conjunto de registros Escurece Definir rs = Server.CreateObject(ADODB.Recordset) rs.Open SELECT * FROM tabela1, conexão 'Guarde nosso grande barbante Dim strTable strTable = rs.GetString(,,</td><td>,</td></tr><tr><td> , ) %> <HTML> <CORPO> <TABELA> <TR><TD> <% Response.Write(strTable) %> </TR></TD> </TABELA> </BODY> </HTML> <% 'Limpar! rs.Fechar Setrs=Nada conexão.Fechar Definir conexão = Nada %> |
A string strTable é usada para armazenar o código da tabela HTML que geramos a partir dos resultados de SELECT * FROM table1.
Haverá código HTML entre cada coluna da tabela HTML, e o código HTML entre cada linha é o mesmo. O método GetString produzirá o código HTML correto e o armazenará em strTable, de modo que precisamos apenas de uma linha de Response.Write para gerar. o conjunto de dados Todos os registros de . Vejamos um exemplo simples, supondo que os resultados de nossa consulta retornem as seguintes linhas e colunas:
| Aqui está uma citação: Col1 Col2 Col3 Linha 1 Bob Smith 40 Linha 1 Ed Frank 43 Linha 1 Sue Vazio 42 |
A string retornada pela instrução GetString será:
| Aqui está uma citação: Bob</td ><td >Smith</td ><td >40</td ><td </td </tr ><tr >< td >Ed... |
Esta string parece longa e confusa, mas é o código HTML desejado. (Observe que iremos colocá-lo depois dele no código HTML escrito à mão. Isso ocorre porque nossa string de formatação não contém as strings necessárias para o cabeçalho e rodapé dessas tabelas.)