تسريع سكربت ADO باستخدام GetString()

استخدم دالة GetString() لتحسين سرعة سكريبتك ASP (باستبدال سطور Response.Write).

مثال

استخدام GetString()
كيفية استخدام GetString() لعرض بيانات مجموعة السجلات في جدول HTML.

عدة سطور Response.Write

النموذج التوضيحي التالي يوضح طريقة عرض استعلام قاعدة البيانات في جدول 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>

الم変يبة العليا str تحتوي على كل الأعمدة والسطور التي تعود من جملة SELECT، وسيظهر </td><td> بين كل عمود، و </td></tr><tr><td> بين كل سطر. بهذا، نحصل على HTML المطلوب باستخدام Response.Write مرة واحدة فقط.