Zrychlení ADO pomocí GetString()


Použijte metodu GetString() k urychlení skriptu ASP (místo použití více Response.Write).


Více odpovědí. Napište

Následující příklad ukazuje jeden způsob, jak zobrazit databázový dotaz v tabulce 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>

U velkého dotazu to může zpomalit čas zpracování skriptu, protože mnoho příkazů Response.Write musí být zpracováno serverem.

Řešením je nechat vytvořit celý řetězec, od <table> do </table>, a poté jej odeslat - pomocí Response.Write pouze jednou.



Metoda GetString().

Metoda GetString() umožňuje zobrazit řetězec pouze s jedním Response.Write. Také eliminuje kód do...loop a podmíněný test, který kontroluje, zda je sada záznamů v EOF.

Syntax

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

K vytvoření tabulky HTML s daty ze sady záznamů potřebujeme použít pouze tři z výše uvedených parametrů (všechny parametry jsou volitelné):

  • coldel – HTML, který se má použít jako oddělovač sloupců
  • rowdel – HTML, který se má použít jako oddělovač řádků
  • nullexpr – HTML, které se má použít, pokud má sloupec hodnotu NULL

Poznámka: Metoda GetString() je funkce ADO 2.0. ADO 2.0 si můžete stáhnout na https://www.microsoft.com/data/download.htm .

V následujícím příkladu použijeme metodu GetString() k udržení sady záznamů jako řetězce:

Příklad

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

Výše uvedená proměnná str obsahuje řetězec všech sloupců a řádků vrácených příkazem SQL SELECT. Mezi každým sloupcem se objeví HTML </td><td> a mezi každým řádkem se objeví HTML </td></tr><tr><td>. To vytvoří přesné HTML, které potřebujeme, pouze s jedním Response.Write.