Aceleração do ADO com GetString()
Use o método GetString() para acelerar seu script ASP (em vez de usar vários Response.Write's).
Múltiplas Respostas. Escrever
O exemplo a seguir demonstra uma maneira de exibir uma consulta de banco de dados em uma tabela HTML:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
%>
<table border="1" width="100%">
<%do until rs.EOF%>
<tr>
<td><%Response.Write(rs.fields("Companyname"))%></td>
<td><%Response.Write(rs.fields("Contactname"))%></td>
</tr>
<%rs.MoveNext
loop%>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>
Para uma consulta grande, isso pode diminuir o tempo de processamento do script, pois muitos comandos Response.Write devem ser processados pelo servidor.
A solução é ter a string inteira criada, de <table> a </table>, e então imprimi-la - usando Response.Write apenas uma vez.
O método GetString()
O método GetString() permite exibir a string com apenas um Response.Write. Também elimina o código do...loop e o teste condicional que verifica se o conjunto de registros está em EOF.
Sintaxe
str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
Para criar uma tabela HTML com dados de um conjunto de registros, precisamos usar apenas três dos parâmetros acima (todos os parâmetros são opcionais):
- coldel - o HTML a ser usado como separador de colunas
- rowdel - o HTML a ser usado como separador de linhas
- nullexpr - o HTML a ser usado se uma coluna for NULL
Observação: O método GetString() é um recurso do ADO 2.0. Você pode baixar o ADO 2.0 em https://www.microsoft.com/data/download.htm .
No exemplo a seguir, usaremos o método GetString() para armazenar o conjunto de registros como uma string:
Exemplo
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
str=rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
%>
<table border="1" width="100%">
<tr>
<td><%Response.Write(str)%></td>
</tr>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>
A variável str acima contém uma string de todas as colunas e linhas retornadas pela instrução SQL SELECT. Entre cada coluna aparecerá o HTML </td><td> e entre cada linha aparecerá o HTML </td></tr><tr><td>. Isso produzirá o HTML exato que precisamos com apenas um Response.Write.