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>"," ")
%>
<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.