ADO GetString() ile Hızlandırın
ASP komut dosyanızı hızlandırmak için GetString() yöntemini kullanın (birden çok Response.Write kullanmak yerine).
Çoklu Response.Write
Aşağıdaki örnek, bir HTML tablosunda bir veritabanı sorgusunun nasıl görüntüleneceğinin bir yolunu gösterir:
<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>
Büyük bir sorgu için, birçok Response.Write komutunun sunucu tarafından işlenmesi gerektiğinden bu, komut dosyası işleme süresini yavaşlatabilir.
Çözüm, <table>'dan </table>'a kadar tüm dizenin oluşturulmasını sağlamak ve ardından yalnızca bir kez Response.Write kullanarak çıktısını almaktır.
GetString() Yöntemi
GetString() yöntemi, dizeyi yalnızca bir Response.Write ile görüntülemenize olanak tanır. Ayrıca do...loop kodunu ve kayıt kümesinin EOF'de olup olmadığını kontrol eden koşullu testi de ortadan kaldırır.
Sözdizimi
str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
Bir kayıt kümesindeki verilerle bir HTML tablosu oluşturmak için yukarıdaki parametrelerden yalnızca üçünü kullanmamız gerekir (tüm parametreler isteğe bağlıdır):
- coldel - sütun ayırıcı olarak kullanılacak HTML
- rowdel - satır ayırıcı olarak kullanılacak HTML
- nullexpr - bir sütun NULL ise kullanılacak HTML
Not: GetString() yöntemi, bir ADO 2.0 özelliğidir. ADO 2.0'ı https://www.microsoft.com/data/download.htm adresinden indirebilirsiniz .
Aşağıdaki örnekte, kayıt kümesini bir dizge olarak tutmak için GetString() yöntemini kullanacağız:
Örnek
<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>
Yukarıdaki str değişkeni, SQL SELECT deyimi tarafından döndürülen tüm sütun ve satırların bir dizesini içerir. Her sütun arasında HTML </td><td> görünecek ve her satır arasında HTML </td></tr><tr><td> görünecektir. Bu, yalnızca bir Response.Write ile ihtiyacımız olan tam HTML'yi üretecektir.