ADO przyspiesz z GetString()
Użyj metody GetString(), aby przyspieszyć skrypt ASP (zamiast używać wielu Response.Write's).
Wielokrotna odpowiedź.Write's
Poniższy przykład ilustruje jeden ze sposobów wyświetlania zapytania bazy danych w tabeli 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>
W przypadku dużych zapytań może to spowolnić czas przetwarzania skryptu, ponieważ wiele poleceń Response.Write musi być przetwarzanych przez serwer.
Rozwiązaniem jest utworzenie całego ciągu znaków, od <table> do </table>, a następnie wypisanie go - za pomocą Response.Write tylko raz.
Metoda GetString()
Metoda GetString() umożliwia wyświetlenie ciągu tylko z jednym Response.Write. Eliminuje również kod do...loop i test warunkowy, który sprawdza, czy zestaw rekordów znajduje się w EOF.
Składnia
str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
Aby utworzyć tabelę HTML z danymi z zestawu rekordów, wystarczy użyć trzech z powyższych parametrów (wszystkie parametry są opcjonalne):
- coldel - HTML używany jako separator kolumn
- rowdel - kod HTML używany jako separator wierszy
- nullexpr - kod HTML do użycia, jeśli kolumna ma wartość NULL
Uwaga: Metoda GetString() jest funkcją ADO 2.0. ADO 2.0 można pobrać pod adresem https://www.microsoft.com/data/download.htm .
W poniższym przykładzie użyjemy metody GetString() do przechowywania zestawu rekordów jako ciągu znaków:
Przykład
<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>
Powyższa zmienna str zawiera ciąg wszystkich kolumn i wierszy zwróconych przez instrukcję SQL SELECT. Pomiędzy każdą kolumną pojawi się kod HTML </td><td>, a między każdym wierszem pojawi się kod HTML </td></tr><tr><td>. Spowoduje to utworzenie dokładnego kodu HTML, którego potrzebujemy, z tylko jednym Response.Write.