يتمتع العديد من مبرمجي ASP بخبرة تنفيذ استعلامات قاعدة البيانات ثم عرض نتائج الاستعلام في جداول HTML. عادة نقوم بهذا:
| هنا اقتباس: <% "إنشاء اتصال/مجموعة سجلات." 'ملء البيانات في كائن مجموعة السجلات %> <جدول> <% افعل بينما لا rs.EOF %> <TR> <TD ><%=rs(Field1)% </TD> <TD ><%=rs(Field2)% </TD> . </TR> <% rs.MoveNext حلقة %> </الجدول> |
إذا كان هناك الكثير من نتائج الاستعلام، فسيستغرق الخادم وقتًا طويلاً لتفسير البرنامج النصي ASP الخاص بك نظرًا لوجود العديد من عبارات Response.Write التي يجب معالجتها إذا قمت بوضع كافة نتائج الإخراج في سلسلة طويلة (من إلى). ، إذًا يحتاج الخادم فقط إلى تفسير عبارة Response.Write مرة واحدة، وسيكون ذلك أسرع بكثير. وقد قام بعض الأشخاص القادرين في Microsoft بتحويل الفكرة إلى واقع (لاحظ أن هذه ميزة متوفرة فقط في ADO 2.0 وما فوق. إذا كنت لا تزال تستخدم الإصدار السابق، يرجى الترقية إلى الإصدار الأحدث)
باستخدام أسلوب GetString، يمكننا استخدام Response.Write واحد فقط لعرض كافة المخرجات، وهو يشبه حلقة DO... LOOP التي يمكنها تحديد ما إذا كانت مجموعة السجلات هي EOF.
استخدام GetString كما يلي (جميع المعلمات اختيارية):
String = Recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
لإنشاء جدول HTML من نتائج مجموعة السجلات، نحتاج فقط إلى الاهتمام بثلاثة من المعلمات الخمسة لـ GetString:
ColumnDelimiter (رمز HTML الذي يفصل أعمدة مجموعة السجلات)، وRowDelimiter (رمز HTML الذي يفصل صفوف مجموعة السجلات)، وNullExpr (رمز HTML الذي يجب إنشاؤه عندما يكون السجل الحالي فارغًا). كما ترون في مثال إنشاء جدول HTML أدناه، يتم فصل كل عمود بـ... وكل صف مفصول بـ.... رمز المثال:
| هنا اقتباس: <%@ LANGUAGE=VBSCRIPT %> <% Option Explicit "تقنية ترميز جيدة." "إنشاء اتصال بقاعدة البيانات." خافت كون تعيين conn = Server.CreateObject(ADODB.Connection) conn.Open DSN=Northwind; 'إنشاء مجموعة سجلات خافتات تعيين rs = Server.CreateObject(ADODB.Recordset) rs.Open حدد * من الجدول 1، كون "قم بتخزين خيطنا الكبير." جدول خافت strTable = rs.GetString(,,</td><td>,</td></tr><tr><td> ،) %> <أتش تي أم أل> <الجسم> <جدول> <TR><TD> <% Response.Write(strTable) %> </TR></TD> </الجدول> </الجسم> </HTML> <% 'تنظيف! روبية. إغلاق سيترز = لا شيء conn.Close تعيين كون = لا شيء %> |
يتم استخدام سلسلة strTable لتخزين كود جدول HTML الذي أنشأناه من نتائج SELECT * FROM table1.
سيكون هناك كود HTML بين كل عمود في جدول HTML، ورمز HTML بين كل صف هو. ستعمل طريقة GetString على إخراج كود HTML الصحيح وتخزينه في strTable، بحيث نحتاج فقط إلى سطر واحد من الاستجابة. اكتب للإخراج. مجموعة البيانات جميع سجلات . دعونا نلقي نظرة على مثال بسيط، على افتراض أن نتائج الاستعلام لدينا ترجع الصفوف والأعمدة التالية:
| هنا اقتباس: العمود 1 العمود 2 العمود 3 الصف 1 بوب سميث 40 الصف 1 إد فرانك 43 الصف 1 سو باطل 42 |
السلسلة التي يتم إرجاعها بواسطة عبارة GetString ستكون:
| هنا اقتباس: بوب</td ><td > سميث </td ><td > 40 </td ><td >< </td </tr ><tr >< td >إد... |
تبدو هذه السلسلة طويلة وفوضوية، ولكنها رمز HTML المطلوب. (لاحظ أننا سنضعها بعد ذلك في كود HTML المكتوب بخط اليد. وذلك لأن سلسلة التنسيق الخاصة بنا لا تحتوي على السلاسل المطلوبة لرأس وتذييل هذه الجداول.)