ADO Accelerate Script through GetString()

Yi kama GetString() don saɓu ɗaukar watsa shirin ASP (a yankin mullumin Response.Write).

Mafiyar koyarwa

Raggi GetString()
Raggi koyarwa za a gana GetString() don kara yin data da ke cikin tashin yin yin a tabbin HTML.

Mullumin Response.Write

Dawarin cece ku fiyayi kacekace na kara yin tashin data gaɗa a tabbin 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>

بالنسبة لاستعلام كبير، هذا سيزيد من وقت معالجة السكربت، لأن الخادم يجب أن يعالج العديد من أوامر Response.Write.

الحل هو إنشاء النص الكامل من <table> إلى </table>، ثم إخراجه باستخدام Response.Write مرة واحدة فقط.

طريقة GetString()

طريقة GetString() تمنحنا القدرة على عرض جميع النصوص باستخدام Response.Write مرة واحدة فقط، دون الحاجة إلى استخدام كود do..loop أو اختبارات الحالة لتحقق مما إذا كانت مجموعة السجلات في نهاية الملف (EOF).

النحو

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

لإنشاء جدول HTML باستخدام بيانات من مجموعة السجلات، نحتاج فقط إلى استخدام ثلاثة من هذه المعلمات (كلها اختيارية):

  • coldel - يتم استخدامه كـ حرف فصل للعناصر في HTML
  • rowdel - يتم استخدامه كـ حرف فصل للسطور في HTML
  • nullexpr - يتم استخدامه كـ HTML عندما يكون العمود فارغًا

ملاحظة:طريقة GetString() هي خاصية ADO 2.0. يمكنك تنزيل ADO 2.0 من العنوان التالى:http://www.microsoft.com/data/download.htm

فى المثال التالى، سنستخدم طريقة GetString()، لنقوم بتحويل مجموعة السجلات إلى نص:

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

The variable str above contains a string of all columns and rows returned by the SELECT statement. There will be </td><td> between each column, and </td></tr><tr><td> between each row. In this way, we get the needed HTML with just one Response.Write.