Untuk fenomena angka negatif selama paging recordset, saya percaya bahwa banyak orang mengalami masalah ini, dan kadang -kadang Baidu dan Google tidak bingung.
Angka negatif terutama terkait dengan jenis kursor. (Misalnya, lebih mudah, dengan asumsi bahwa sudah ada file dari database tautan Conn.asp dan telah dimasukkan.) Sekarang contohnya adalah sebagai berikut:
SQL = SELECT * Dari tabel di mana kondisi pesanan oleh id desc 'di sini dapat ditulis ulang sesuai dengan kebutuhan Anda
Set rs = const.execute (sql) '=== Perhatikan kalimat ini ===
Rs.pagesize = 10 '=== Setel jumlah catatan per halaman adalah 10 ===
Halaman = request.queryString (halaman)
Jika halaman = lalu halaman = 1
Jika tidak isnumeric (halaman) maka halaman = 1
Halaman = clng (halaman)
Jika halaman <1 halaman = 1
Jika halaman> rs.pagecount itu = vrs.pagecount
rs.Absolutepage = halaman
redup c
C = 1
Lakukan sementara tidak rs.eof dan c <= rs.pagecount
'Konten output
C = C+1
rs.movenext
Lingkaran
'Buat tautan halaman
Menurut kode di atas, objek Recordset secara langsung oleh kode: Set RS = Conn.Execute (SQL) setelah menggunakan kalimat ini, kampanye default objek Recordset adalah 0, yaitu, kursor hanya dapat bergulir, Dan jenis pengunciannya adalah 0, menunjukkan bahwa hanya membaca hanya membaca saja, menunjukkan hanya membaca hanya membaca, hanya menunjukkan bacaan hanya membaca, menunjukkan bahwa hanya membaca hanya membaca saja, menunjukkan hanya membaca hanya membaca, menunjukkan bahwa hanya membaca hanya membaca saja, menunjukkan hanya membaca hanya membaca, menunjukkan bahwa hanya membaca hanya membaca saja, hanya menunjukkan bacaan hanya membaca, hanya menunjukkan bacaan hanya baca, menunjukkan bahwa hanya membaca hanya membaca saja, menunjukkan hanya membaca hanya membaca, menunjukkan bahwa hanya membaca hanya membaca saja, hanya menunjukkan hanya menunjukkan hanya membaca, menunjukkan hanya membaca saja, menunjukkan bahwa hanya membaca yang hanya dibaca.
Oleh karena itu, jika angka negatif muncul selama paging, periksa apakah objek Recordset ditulis sebagai bentuk di atas, dan harus ditulis:
Set RS = Server.CreateObject (ADODB.OLDSET)
Rs.oopen Sql, Conn, 1,3
Di atas menunjukkan bahwa kursor adalah 1, yang dapat bergerak maju dan mundur;
Menurut metode di atas, tidak akan ada masalah, tetapi untuk asuransi, prinsip paging recionset didasarkan pada jumlah catatan setelah membaca semua catatan, jadi biarkan kampanye berputar terlebih dahulu, tambahkan yang berikut setelah level RS .Pagesize = 10, tambahkan yang berikut di bawah dua kalimat:
Kursor rs.movelast bergerak ke ujung
Kursor rs.movefirst pindah ke atas
Prinsip pagination dari Recordset diketahui terlebih dahulu membaca catatan di seluruh database sebelum mendapatkan nilai Rs.RecordCount. Metode paging ini relatif sederhana, tetapi ada kerugian yang fatal. dalam pemrograman yang sebenarnya. Sekarang beri Anda ide bahwa Anda dapat melakukan pagination dalam pernyataan SQL Query.
Mulai dari kabut Pasal M.
Memilih*
Dari (selecttopn*
Dari (selecttop (m+n-1)*dari nama tabel orderbyiddesc) t1) t2
Orderbyiddesc
Dengan pernyataan SQL di atas, kesalahannya relatif kecil, dan yang paling penting adalah bahwa efisiensinya relatif tinggi.