ADO versnellen met GetString()


Gebruik de methode GetString() om uw ASP-script te versnellen (in plaats van meerdere Response.Write's te gebruiken).


Meerdere reacties.Schrijven

Het volgende voorbeeld toont een manier om een ​​databasequery in een HTML-tabel weer te geven:

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

Voor een grote query kan dit de verwerkingstijd van het script vertragen, omdat veel Response.Write-opdrachten door de server moeten worden verwerkt.

De oplossing is om de hele string te maken, van <table> tot </table>, en deze vervolgens uit te voeren - met slechts één keer Response.Write.



De GetString()-methode

Met de methode GetString() kunt u de tekenreeks weergeven met slechts één Response.Write. Het elimineert ook de do...loop-code en de voorwaardelijke test die controleert of de recordset op EOF is.

Syntaxis

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

Om een ​​HTML-tabel te maken met gegevens uit een recordset, hoeven we slechts drie van de bovenstaande parameters te gebruiken (alle parameters zijn optioneel):

  • coldel - de HTML die als kolomscheidingsteken moet worden gebruikt
  • rowdel - de HTML die als rijscheidingsteken moet worden gebruikt
  • nullexpr - de HTML die moet worden gebruikt als een kolom NULL is

Opmerking: de methode GetString() is een ADO 2.0-functie. U kunt ADO 2.0 downloaden op https://www.microsoft.com/data/download.htm .

In het volgende voorbeeld gebruiken we de methode GetString() om de recordset als een tekenreeks vast te houden:

Voorbeeld

<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>","&nbsp;")
%>

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

De bovenstaande variabele str bevat een reeks van alle kolommen en rijen die worden geretourneerd door de SQL-instructie SELECT. Tussen elke kolom verschijnt de HTML </td><td> en tussen elke rij verschijnt de HTML </td></tr><tr><td>. Dit zal de exacte HTML produceren die we nodig hebben met slechts één Response.Write.