Przyspieszenie skryptu za pomocą GetString() w ADO
- Poprzednia strona Usuwanie ADO
- Następna strona Command ADO
Użyj metody GetString(), aby przyspieszyć swój skrypt ASP (zamiast wielostronicowego Response.Write).
Przykład
- Użycie GetString()
- Jak używać GetString() do wyświetlania danych z zestawu rekordów w tabeli HTML.
Wielostronicowy Response.Write
Poniższy przykład pokazuje jeden sposób wyświetlania wyników 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>
Dla dużego zapytania, to może zwiększyć czas przetwarzania skryptu, ponieważ serwer musi przetwarzać dużą liczbę poleceń Response.Write.
Rozwiązaniem jest utworzenie całego ciągu znaków, od <table> do </table>, a następnie jego wypisanie - tylko jednym poleceniem Response.Write.
Metoda GetString()
Metoda GetString() daje nam możliwość wyświetlenia wszystkich ciągów znaków za pomocą jednego polecenia Response.Write, nawet bez kodu do..loop oraz testów warunkowych sprawdzających, czy zbiór danych znajduje się w EOF.
Schemat
str = rs.GetString(format, rows, coldel, rowdel, nullexpr)
Aby użyć danych z zapytania do utworzenia tabeli HTML, wystarczy użyć trzech z powyższych parametrów (wszystkie parametry są opcjonalne):
- coldel - używany HTML jako separator kolumn
- rowdel - używany HTML jako separator wierszy
- nullexpr - używany HTML dla pustych kolumn
Uwaga:Metoda GetString() jest cechą ADO 2.0. Możesz pobrać ADO 2.0 z poniższego adresu:http://www.microsoft.com/data/download.htm
W poniższym przykładzie użyjemy metody GetString(), aby zapiszemy zbiór danych jako ciąg znaków:
<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>
Zmienna str zawiera ciąg znaków ze wszystkimi kolumnami i wierszami zwróconymi przez zapytanie SELECT. Między kolumnami pojawia się </td><td> i między wierszami </td></tr><tr><td>. Dzięki temu, używając tylko jednego Response.Write, uzyskujemy potrzebny HTML.
- Poprzednia strona Usuwanie ADO
- Następna strona Command ADO