สำหรับปรากฏการณ์ของตัวเลขเชิงลบในระหว่างการเพจชุดบันทึกฉันเชื่อว่าหลายคนพบปัญหานี้และบางครั้ง Baidu และ Google ไม่ได้งงงวย
จำนวนลบส่วนใหญ่เกี่ยวข้องกับประเภทของเคอร์เซอร์ (ตัวอย่างเช่นมันสะดวกโดยสมมติว่ามีไฟล์ของฐานข้อมูลเชื่อมโยง conn.asp อยู่แล้วและรวมอยู่ด้วย) ตอนนี้ตัวอย่างมีดังนี้:
SQL = SELECT * จากตารางที่เงื่อนไขการสั่งซื้อตาม ID desc 'ที่นี่สามารถเขียนใหม่ได้ตามความต้องการของคุณ
ตั้งค่า rs = const.execute (sql) '=== หมายเหตุประโยคนี้ ===
rs.pagesize = 10 '=== ตั้งค่าจำนวนระเบียนต่อหน้าคือ 10 ===
Page = request.QueryString (หน้า)
ถ้าหน้า = แล้วหน้า = 1
ถ้าไม่ใช่ isnumeric (หน้า) แล้วหน้า = 1
หน้า = CLNG (หน้า)
ถ้าหน้า <1 หน้า = 1
ถ้าหน้า> rs.pagecount ที่ = vrs.pagecount
rs.absolutePage = หน้า
สลัว C
C = 1
ทำในขณะที่ไม่ใช่ rs.eof และ c <= rs.pagecount
'เนื้อหาเอาต์พุต
C = C+1
Rs.Movenext
วง
'สร้างลิงค์หน้า
ตามรหัสด้านบนวัตถุ recordset โดยตรงโดยรหัส: set rs = conn.execute (SQL) และประเภทของการล็อคคือ 0 แสดงให้เห็นว่าการอ่านเท่านั้นอ่านได้เท่านั้นโดยระบุการอ่านเท่านั้นอ่านเท่านั้นที่ระบุการอ่านเท่านั้นอ่านเท่านั้นแสดงให้เห็นว่าการอ่านเท่านั้นอ่านเท่านั้นเท่านั้น การระบุการอ่านเท่านั้นอ่านเท่านั้นที่ระบุว่าการอ่านเท่านั้นอ่านเท่านั้นโดยระบุการอ่านเท่านั้นอ่านเท่านั้นที่ระบุการอ่านเท่านั้นอ่านเท่านั้นแสดงให้เห็นว่าการอ่านเท่านั้นอ่านเท่านั้นเท่านั้นที่ระบุการอ่านเท่านั้นการอ่านเท่านั้นแสดงให้เห็นว่าการอ่านเท่านั้นอ่านเท่านั้น การอ่านอ่านเท่านั้นซึ่งระบุว่าการอ่านเท่านั้นแสดงให้เห็นว่าการอ่านเท่านั้นที่อ่านได้เท่านั้น
ดังนั้นหากจำนวนลบปรากฏขึ้นระหว่างการเพจโปรดตรวจสอบว่าวัตถุชุดบันทึกถูกเขียนเป็นแบบฟอร์มข้างต้นหรือไม่และควรเขียน:
ตั้งค่า rs = server.createObject (adodb.oldset)
Rs.oopen SQL, Conn, 1,3
ข้างต้นบ่งชี้ว่าเคอร์เซอร์คือ 1 ซึ่งสามารถก้าวไปข้างหน้าและย้อนกลับได้
ตามวิธีการข้างต้นจะไม่มีปัญหา แต่สำหรับการประกันภัยหลักการของการเพจทรีทรีเซตจะขึ้นอยู่กับจำนวนบันทึกหลังจากอ่านบันทึกทั้งหมดดังนั้นให้แคมเปญหมุนไปก่อนเพิ่มหลังจากระดับ RS ต่อไปนี้ .Pagesize = 10, เพิ่มด้านล่างสองประโยคต่อไปนี้:
เคอร์เซอร์ Rs.Movelast 'ย้ายไปยังจุดสิ้นสุด
เคอร์เซอร์ Rs.MoveFirst 'ย้ายไปด้านบน
หลักการของการปนเปื้อนของ recordSet เป็นที่รู้จักกันในการอ่านระเบียนครั้งแรกในฐานข้อมูลทั้งหมดก่อนที่จะได้รับค่าของ Rs.RecordCount วิธีการเพจนี้ค่อนข้างง่าย แต่มีข้อเสียที่ร้ายแรง ในการเขียนโปรแกรมจริง ตอนนี้ให้ความคิดที่ว่าคุณสามารถทำหน้าเว็บในคำสั่ง SQL Query
เริ่มจากหมอกของบทความ M.
เลือก*
จาก (selecttopn*
จาก (selecttop (m+n-1)*จากชื่อตาราง orderbyiddesc) t1) t2
orderbyiddesc
ด้วยคำสั่ง SQL ข้างต้นข้อผิดพลาดมีขนาดค่อนข้างเล็กและสิ่งที่สำคัญที่สุดคือประสิทธิภาพค่อนข้างสูง