Accelerare lo script con GetString() ADO

Utilizzare il metodo GetString() per accelerare i vostri script ASP (al posto di Response.Write su più righe).

Esempio

Utilizzo di GetString()
Come utilizzare GetString() per visualizzare i dati di un set di record in una tabella HTML.

Multipla riga Response.Write

Esempio di come visualizzare una query di database in una tabella 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>

Per una query grande, questo può aumentare il tempo di elaborazione dello script, poiché il server deve gestire un gran numero di comandi Response.Write.

La soluzione è creare la stringa completa, da <table> a </table>, e stamparla utilizzando una sola chiamata a Response.Write.

Metodo GetString()

Il metodo GetString() ci permette di visualizzare tutte le stringhe utilizzando una sola chiamata a Response.Write, senza la necessità di codice do..loop o test di condizione per verificare se il recordset è raggiunto EOF.

Sintassi

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

Per creare una tabella HTML utilizzando i dati del recordset, ci bastano tre dei parametri elencati di seguito (tutti opzionali):

  • coldel - Utilizzato come separatore di colonna HTML
  • rowdel - Utilizzato come separatore di riga HTML
  • nullexpr - HTML utilizzato quando una colonna è vuota

Note:Il metodo GetString() è una caratteristica di ADO 2.0. Puoi scaricare ADO 2.0 dal seguente indirizzo:http://www.microsoft.com/data/download.htm

Nel seguente esempio, utilizzeremo il metodo GetString() per memorizzare il recordset come una stringa:

<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>

La variabile superiore str contiene una stringa con tutte le colonne e le righe restituite dalla query SELECT. Tra le colonne ci sono </td><td> e tra le righe ci sono </td></tr><tr><td>. In questo modo, utilizzando una sola volta Response.Write, otteniamo l'HTML necessario.