بعد قراءة الكثير من المقدمات، أعلم أن كفاءة تنفيذ المجموعة rs=conn.execute(sql) أعلى بكثير من rs.open sql,conn,1,1، ولكن هناك العديد من طرق تنفيذ المجموعة rs=conn. تنفيذ (sql). أولا وقبل كل شيء، لا يحتوي على سمات الترحيل، مثل rs.pagesize، rs، المطلق والسمات الأخرى على الرغم من أن سرعة تنفيذ rs=conn.execute(sql) أسرع، إلا أنه لا يمكن ترحيلها بالطريقة العادية. ماذا علي أن أفعل؟ ؟
في اليوم التالي، قمت بفحص المعلومات الموجودة على الإنترنت، وفكرت فجأة إذا كان بإمكاني وضع البيانات المطلوبة في مصفوفة، ثم ترقيم الصفحات في المصفوفة؟ أولاً، قمت بإزالة نتيجة الاستعلام الخاصة بـ set rs=conn.execute(sql) وأرفقتها بمصفوفة من خلال rs.getrows()، لذلك بحثت عن منشورات ترقيم الصفحات على مواقع الويب المختلفة، على الرغم من أنني وجدت العديد من منشورات ترقيم الصفحات عالية الكفاءة (بما في ذلك الإجراءات المخزنة، وما إلى ذلك)، ولكن اتضح أن كل شيء يجب تنفيذه من خلال SQL، أي أنه يجب تنفيذ عبارات SQL عند قلب الصفحات. في هذا الوقت، أشعر بالدوار، وتم تحسين عبارات SQL فقط في هذا الوقت، لا يوجد حقًا سوى عمل رائع! أخيرًا، لقد أكملت مسودة تقريبية لترقيم الصفحات للمصفوفة، ولم تكن مكتملة تمامًا، دع الجميع يدرسونها معًا! الرمز هو كما يلي:
أولاً توجد صفحة استعلام Index.asp:
<html xmlns=http://www.w3.org/1999/xhtml>
<الرأس>
<meta http-equiv=Content-Type content=text/html;
<title>مستند بدون عنوان</title>
</الرأس>
<body><FORM id=SearchForm name=SearchForm way=post action=search.asp?act=cha>
<فئة div=الإدخال>
<input id=keyword onmouseover=this.focus() title=ابحث بسرعة في سجلات رسائلك onfocus=this.select() class=in maxlength=35 name=keyword />
<حدد النمط=العرض:120px;الهامش العلوي:-25px الاسم=معرف القناة>
<option value=k2>اترك تعليقًا</option>
<option value=k1>محتوى الرسالة</option>
</حدد>
<معرف الإدخال=نوع البحث_btn=قيمة الإرسال=الاستعلام>
</div>
</فورم>
</الجسم>
</html>
رمز البحث.asp:
<html xmlns=http://www.w3.org/1999/xhtml>
<الرأس>
<meta http-equiv=Content-Type content=text/html;
<title>مستند بدون عنوان</title>
</الرأس>
<الجسم>
<%
إذا request.querystring(act)=cha إذن
search_type=request.FORM(ChannelID)
الكلمات الرئيسية=request.form(الكلمة الرئيسية)
إذا search_type=k1 ثم "ابحث وفقًا لمحتوى الرسالة".
sql=select * من gbook_rec حيث g_content مثل '%&keywords&%'
ElseIf search_type=k2 إذن
"إذا كان search_type=k2، فعندئذٍ" ابحث وفقًا للشخص الذي ترك الرسالة
sql=select * من gbook_rec حيث g_name مثل '%&keywords&%'
آخر
Response.end
endIf
تعيين rs=conn.execute(sql)
إذا rs.eof وrs.bof ثم
%>
<div class=search>لم يتم العثور على السجل الذي تبحث عنه! </div>
<%
استجابة.النهاية
آخر
aResults=rs.getrows()' أخرج البيانات وضعها في صف المصفوفة
application(data)=aResults
اضبط rs = لا شيء
conn.Close "أغلق قاعدة البيانات."
نهاية إذا
نهاية إذا
النتائج=التطبيق(البيانات)
خافت أنا، الصف، حجم الصفحة، صفحة، خدر، عدد الصفحات، فينيي
numb=UBound(aResults,2)+1 'إجمالي عدد الصفوف المسجلة
pagesize=2 'عدد العناصر في كل صفحة
إذا كان حجم صفحات Mod خدرًا = 0، فقم بالحكم على العدد الإجمالي للصفحات
عدد الصفحات = كثافة العمليات (مخدر/حجم الصفحة)
آخر
عدد الصفحات=Int(numb/pagesize)+1
نهاية إذا
epage=request.querystring(page)
إذا كانت الصفحة = ثم الصفحة = 1
من أجل i=(epage-1)*pagesize إلى epage*pagesize-1
إذا كان i>UBound(aResults,2) أو i<0 ثم اخرج من أجل
%>
<فئة التصنيف=المحتوى>
<ul><li>سجل<%=i+1%></li>
<li>اترك تعليقًا: <%=aResults(1,i)%></li>
<li>المحتوى: <%=aResults(2,i)%></li>
<li>الوقت:<%=aResults(3,i)%></li>
<li>IP:<%=aResults(5,i)%></li>
</ul>
</div>
<%
التالي
إذا خدر> حجم الصفحة ثم
fenye=<a href=search.asp?page=1>الصفحة الرئيسية</a>
fenye=fenye&<a href=search.asp?page=&epage-1& title=&epage-1&>الصفحة السابقة</a>
fenye=fenye&<a href=search.asp?page=&epage+1& title=&epage+1&>الصفحة التالية</a>
fenye=fenye&<a href=search.asp?page=&pagecount&>الصفحة الأخيرة</a>
فيني=فيني&<BR>
fenye=fenye&إجمالي عدد الصفحات &pagecount&، الصفحة الحالية &epage&، إجمالي السجلات هي: &numb
استجابة.اكتب fenye
انتهي إذا
%>
</الجسم>
</html>
ملخص: أعتقد أن الكود أعلاه لا يحتاج إلى الاتصال بقاعدة البيانات إلا للاستعلام الأول، ولا يحتاج إلى الاتصال بقاعدة البيانات في أوقات أخرى، وهو مفيد جدًا لحفظ الموارد عند الاستعلام عن البيانات الكبيرة أو عند وجودها هناك الكثير من الناس يتواصلون! بالإضافة إلى ذلك، يتم حفظ مصفوفة الاستعلام في كائن التطبيق، ويمكنك أيضًا الحكم على ما استفسر عنه شخص ما بناءً على التطبيق (البيانات) (اسم المستخدم). ومع ذلك، هذا الرمز هو النموذج الأول ويحتاج إلى تحسين من خلال الجهود المشتركة للجميع المستقبل! أتمنى من الجميع الاهتمام والدعم، شكرًا لكم!
test.rar