موصى به: يقوم ASP بتنفيذ نهاية العنوان الطويل مع القطع الناقص استخراج المقالات الطويلة من قاعدة البيانات يعيق دائمًا تخطيط صفحة الويب. لذلك ، أريد استخراج جزء من الشخصيات بشكل ثابت ، ثم هناك ... بديل بعد ذلك. 1. المبدأ: تحديد ما إذا كان طول المقالة يتجاوز الطول المحدد. إذا تجاوز الطول المحدد ، فسيتم عرض الطول المحدد فقط.
كان لدى العديد من مبرمجي ASP خبرة في تنفيذ استعلامات قاعدة البيانات ومن ثم عرض نتائج الاستعلام في جداول HTML. عادة ما نفعل هذا:
| ما يلي هو المحتوى المقتبس: <٪ "إنشاء اتصال / مجموعة سجلات ملء البيانات في كائن مجموعة السجلات ٪> <griding> <٪ تفعل بينما لا rs.eof ٪> <tr> <td> <٪ = rs (field1) ٪> </td> <td> <٪ = rs (field2) ٪> </td> . </r> <٪ Rs.Movenext حلقة ٪> </table> |
إذا كان هناك العديد من نتائج الاستعلام ، فسوف يستغرق الخادم الكثير من الوقت لشرح البرنامج النصي ASP الخاص بك ، لأن هناك العديد من عبارات الاستجابة. إذا وضعت جميع نتائج الإخراج في سلسلة طويلة (من <الطاولة> إلى </table>) ، فسيقوم الخادم بتفسير عبارات الاستجابة. وستكون أسرع بكثير. حول بعض اللاعبين القادرين في Microsoft أفكارهم إلى حقيقة واقعة. (لاحظ ، هذه ميزة لا يتم فيها سوى ADO 2.0 أو أعلى. إذا كنت لا تزال تستخدم الإصدار السابق ، فيرجى الترقية إلى أحدث إصدار)
باستخدام طريقة getString ، يمكننا استخدام استجابة واحدة فقط. الكتابة لعرض جميع المخرجات ، والتي تشبه حلقة الحلقة التي يمكنها تحديد ما إذا كانت مجموعة السجلات EOF.
استخدام GetString كما يلي (جميع المعلمات اختيارية):
String = RecordSet.getString (StringFormat ، Numrows ، ColumnDelimiter ، Rowdelimiter ، Nullexpr)
لإنشاء جدول HTML من نتيجة مجموعة السجلات ، نحتاج فقط إلى الاهتمام بـ 3 من 5 معلمات GetString:
ColumnDelimiter (رمز HTML الذي يفصل أعمدة مجموعة السجلات) ، ROWDELIMITER (رمز HTML الذي يفصل صفوف مجموعة السجلات) ، و NULLEXPR (رمز HTML الذي يجب إنشاؤه عندما يكون السجل الحالي فارغًا). كما ترون في مثال توليد جدول HTML أدناه ، يتم فصل كل عمود بواسطة <td> ... </td> ويتم فصل كل صف بواسطة <tr> ... </tr>. دعنا نلقي نظرة على الكود للمثال.
| ما يلي هو المحتوى المقتبس: <٪@ language = vbscript ٪> <٪ خيار صريح 'تقنية الترميز الجيد "إنشاء اتصال بـ DB قاتمة كون تعيين conn = server.createBject (adodb.connection) Conn.Open DSN = NorthWind ؛ "إنشاء مجموعة سجلات قاتمة روبية تعيين rs = server.createBject (adodb.recordset) Rs.Open Select * from Table1 ، Conn قم بتخزين سلسلة واحدة كبيرة قاتمة strtable = rs.getString (، ، </td> <td> ، </td> </tr> <tr> <td> ،) ٪> <html> <body> <griding> <tr> <td> <٪ استجابة. write (strtable) ٪> </r> </td> </table> </body> </html> <٪ 'تنظيف! Rs.close تعيين روبية = لا شيء conn.close تعيين conn = لا شيء ٪> |
يتم استخدام سلسلة Strtable لتخزين الكود الذي ننشئه من نتيجة جدول HTML لـ SELECT * من Table1.
سيكون هناك </td> <td> كود html بين كل عمود من جدول HTML ، ورمز HTML بين كل صف هو </td> </td> <tr> <td>. تقوم طريقة GetString بإخراج رمز HTML الصحيح وتخزينه في Strtable ، بحيث نحتاج فقط إلى سطر واحد من الاستجابة. اكتب لإخراج جميع السجلات في مجموعة البيانات. دعونا نلقي نظرة على مثال بسيط ، على افتراض أن نتائج استعلامنا ترجع الصفوف والأعمدة التالية:
| ما يلي هو المحتوى المقتبس: Col1 Col2 Col3 Row1 Bob Smith 40 Row1 ed Frank 43 Row1 Sue Void 42 |
ثم ستكون السلسلة التي تم إرجاعها بواسطة عبارة GetString هي:
| ما يلي هو المحتوى المقتبس: bob </td> <td> smith </td> <td> 40 </td> <td> </td> </td> </tr> <tr> < TD > إد ... |
لكي نكون صادقين ، تبدو هذه السلسلة طويلة وفوضوية ، لكنها رمز HTML الذي نريده. (لاحظ أنه في رمز HTML المكتوب بخط اليد ، نضع <Table> <tr> <td> أمام الاستجابة. write و </td> </tr> </tabl> خلفه. هذا لأن سلسلة تنسيقنا لا تحتوي على الأوتار المطلوبة لبداية ونهاية هذه الجداول.)
المشاركة: الأخطاء والحلول الشائعة في مكالمات قاعدة البيانات في ASP فيما يلي بعض الأخطاء في مكالمات قاعدة البيانات في برامج ASP التي يتم مواجهتها غالبًا أثناء صيانة الجهاز الظاهري. الآن نقوم بجمعها وتنظيمها على النحو التالي: لا يمكننا فتح الكلمة الرئيسية للتسجيل (8007000E) Microsoft Ole DB Provider لـ ODBC Drivers Error '8007000e' [micro