تسريع ADO باستخدام GetString ()
استخدم طريقة GetString () لتسريع البرنامج النصي لـ ASP (بدلاً من استخدام Response.Write's المتعددة).
استجابة متعددة
يوضح المثال التالي طريقة واحدة لكيفية عرض استعلام قاعدة بيانات في جدول 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 ببيانات من مجموعة سجلات ، نحتاج فقط إلى استخدام ثلاثة من المعلمات أعلاه (جميع المعلمات اختيارية):
- كولديل - HTML المراد استخدامه كفاصل أعمدة
- Rowdel - HTML المراد استخدامه كفاصل بين الصفوف
- nullexpr - HTML المراد استخدامه إذا كان العمود فارغًا
ملاحظة: طريقة GetString () هي إحدى ميزات ADO 2.0. يمكنك تنزيل ADO 2.0 على https://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 أعلاه على سلسلة من جميع الأعمدة والصفوف التي تم إرجاعها بواسطة عبارة SQL SELECT. بين كل عمود سيظهر HTML </td> <td> ، وبين كل صف ، سيظهر HTML </td> </tr> <tr> <td>. سيؤدي هذا إلى إنتاج HTML الدقيق الذي نحتاجه مع استجابة واحدة فقط.