Aceleração de Script ADO por GetString()

Use o método GetString() para acelerar seu script ASP (em vez de Response.Write em várias linhas).

Exemplo

Uso de GetString()
Como usar GetString() para exibir dados de um conjunto de registros em uma tabela HTML.

Múltiplas linhas Response.Write

Este exemplo demonstra um método para exibir consultas de banco de dados em tabelas 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 aumentará o tempo de processamento do script, pois o servidor precisa lidar com muitos comandos Response.Write.

A solução é criar a string completa, desde <table> até </table>, e então escrevê-la - usando apenas uma vez Response.Write.

Método GetString()

O método GetString() nos permite exibir todos os strings usando apenas uma vez Response.Write, mesmo que não seja necessário código do tipo do..loop ou testes de condições para verificar se o conjunto de registros está no EOF.

Sintaxe

str = rs.GetString(format, rows, coldel, rowdel, nullexpr)

Para usar os dados do conjunto de registros para criar uma tabela HTML, precisamos apenas dos três parâmetros acima (todos eles são opcionais):

  • coldel - HTML usado como delimitador de coluna
  • rowdel - HTML usado como delimitador de linha
  • nullexpr - HTML usado quando a coluna está vazia

Notas:O método GetString() é uma característica do ADO 2.0. Você pode baixar o ADO 2.0 pelo endereço a seguir:http://www.microsoft.com/data/download.htm

Neste exemplo, usaremos o método GetString() para armazenar o conjunto de registros em uma string:

<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 contém uma string com todas as colunas e linhas retornadas pela cláusula SELECT. Entre cada coluna会出现 </td><td>,entre cada linha会出现 </td></tr><tr><td>。Dessa forma, usando Response.Write apenas uma vez, obtemos o HTML necessário.