<%
'Platform: Win2000+IIS5.0+Sql2000
'PS: Meningkatkan versi terakhir. Versi terakhir adalah versi SQL dan tidak ada prosedur tersimpan yang digunakan.
'Versi sebelumnya: [Asli] Kode paging data tingkat jutaan yang luar biasa - (sibuk untuk waktu yang lama) (http://bbs.bccn.net/thread-175543-1-1.html)
'-----------------------------------------------------------Kode berikut ini adalah kode halaman web
Respon.Buffer = Benar
Redupkan SqlLocalName,SqlUsername,SqlPassword,SqlDatabaseName
Redupkan SambunganStr, Sambung
'''''''''''''''''''''''''' basis data SQL''''''''''''''' '''''' ''''''''''''''''''''''''''''''''
SqlLocalName =(lokal)'IP Koneksi [IP asing lokal (lokal)]
SqlUsername=sa 'Nama pengguna basis data
SqlPassword=XXXXXX 'Kata sandi pengguna
SqlDatabaseName=NewsTable 'Nama basis data
ConnStr = Penyedia=Sqloledb;ID Pengguna= & SqlNama Pengguna & ; Kata Sandi= & SqlPassword & ; Katalog Awal = & SqlDatabaseName & ;
''''''''''''''''''''''''''''''''''''''' '''''''' '''''''''''''''''''''''''''''
Pada Kesalahan Lanjutkan Berikutnya
Setel Koneksi=Server.CreateObject(ADODB.Connection)
Sambungan.buka SambunganStr
Jika Salah Lalu
err.Clear
SetConn=Tidak ada
Response.Write <div style='font-size:14px;color=#ff0000' align='center'>Kesalahan koneksi database, silakan periksa string koneksi database</div>
Respon.Akhir
Akhiri Jika
'Kelas ini melakukan kode instantiasi tanpa memperhitungkan semua kondisi yang mungkin untuk paging. Kategori ini hanya untuk referensi
'------------------------------------------------ - -------------------------------------------------
'PageNo-halaman saat ini;PageSizeX-ukuran halaman;PageCountX-jumlah total halaman;FieldCount-jumlah total catatan;StrWhere-kondisi kueri
Redupkan PageNo,PageSizeX,PageCountX,FieldCount,StrWhere
'Lakukan tugas
Nomor Halaman=trim(Permintaan.string Kueri(NoHalaman))
PageSizeX=30' mendefinisikan ukuran paging
jika isnumerik(NoHalaman) atau NoHalaman= maka'Jika tidak ada nilai Halaman, inisialisasi nilainya
Nomor Halaman=abs(NoHalaman)
jika Nomor Halaman=0 maka Nomor Halaman=1
kalau tidak
Nomor Halaman=1
berakhir jika
StrWhere=(ClassCode=0101 dan Hits>20)'Catatan, perhatikan panjang karakter di sini
setel rekomendasi = server.createobject(adodb.command)
recom.activeconnection = Sambungan
rekomendasi.commandtype = 4
recom.commandtext = Berita_Kelas
recom.Parameters.Appendrecom.CreateParameter(@StrWhere,202,1,100,StrWhere)
recom.Parameters.Appendrecom.CreateParameter(@PageSize,3,1,,PageSizeX)
recom.Parameters.Appendrecom.CreateParameter(@PageIndex,3,1,,PageNo)
setel rs = rekomendasi.eksekusi()
jika rs.eof maka
set rs=tidak ada : set recom=tidak ada: Sambungan.Tutup : setel Sambung=tidak ada
respon.write <script LANGUAGE='javascript'>alert('Tidak ada catatan yang ditemukan saat ini, silakan kembali dan coba lagi!');history.go(-1);</script>
respon.akhir
berakhir jika
'Tampilkan data
lakukan selagi tidak rs.eof
respon.write&rs(Judul)& Tambahkan waktu:&rs(AddTime)&<br/>
rs.movenext
lingkaran
'Dapatkan jumlah total catatan dan hitung jumlah halaman
set rs = rs.NextRecordset
jika rs(hitungx) > 0 maka
Jumlah Bidang=rs(hitunganx)
kalau tidak
Jumlah Bidang=0
berakhir jika
jika (FieldCount mod PageSizeX)>0 lalu
PageCountX=((FieldCount - (FieldCount mod PageSizeX))/ PageSizeX)+1
kalau tidak
Jumlah HalamanX= (Jumlah Bidang / UkuranHalamanX)
berakhir jika
'Tutup dan lepaskan sumber daya terkait
set rs=tidak ada : set recom=tidak ada: Sambungan.Tutup : setel Sambung=tidak ada
'Tampilkan halaman
jika Nomor Halaman<=1 maka
Response.Tulis <font color='#FF0000'>[Beranda] [Halaman Sebelumnya]</font>
kalau tidak
Response.Write[<a href='?PageNo=1' target='_self' title='Beranda'><font color='#FF0000'>Beranda</font></a>]
Response.Write[<a href='?PageNo=&(PageNo-1)&' target='_self' title='Halaman sebelumnya'><font color='#FF0000'>Halaman sebelumnya</font>< /a >]
berakhir jika
jika PageNo>=PageCountX maka
Respon.Tulis <font color='#FF0000'>[halaman berikutnya] [halaman terakhir]</font>
kalau tidak
Response.Write[<a href='?PageNo=&(PageNo+1)&'target='_self' title='Halaman berikutnya'><font color='#FF0000'>Halaman berikutnya</font>< /a >]
Response.Write[<a href='?PageNo=&PageCountX&' target='_self' title='Halaman terakhir'><font color='#FF0000'>Halaman terakhir</font></a>]
berakhir jika
Response.Write[Halaman <font color=red>&PageNo&</font>/total <font color=red> & PageCountX &</font>]
Response.Tulis [Total<font color=red>&FieldCount&</font> item<font color=red>& PageSizeX & </font> item/halaman]
Response.Write Buka & <input id=zhuanpage name=zhuanpage size=2 value=&PageNo&> & halaman <input type=submit value=Go onclick=gotoPage()>
Respon.Tulis</td></tr></table>
Response.Write<script>fungsi gotoPage(){var pg=document.getElementById('zhuanpage').value;if(isNaN(pg)||pg>&PageCountX&||pg<0){window.alert('Harap benar Masukkan nomor halaman, yang hanya boleh berupa bilangan bulat positif! Dan tidak boleh lebih besar dari &PageCountX&');return false;}else{window.location.href='?PageNo='+document.getElementById('zhuanpage').value+'';return true;}}</script>
%>
'------------------------------------------------ - ------Kode berikut adalah kode prosedur tersimpan
BUAT prosedurBerita_Kelas
--Informasi berita dengan jutaan halaman
(
@StrWhere varchar(100),
@PageSize ke dalam,
@PageIndexint
)
SEBAGAI
menyatakan@strSQLvarchar(2000) -- pernyataan utama
menyatakan@strCountSQL varchar(2000) -- total catatan pernyataan utama
menyatakan@strTmpvarchar(1000) -- variabel sementara
Set @strTmp = Pilih atas + str(@PageSize) + Judul,AddTime dari Tb_News --Perhatikan di sini bahwa beberapa bidang diperlukan untuk membaca beberapa bidang
jika @StrWhere<>''
Mulai
Setel @strSQL=@strTmp + Where ID < (pilih min(ID) dari (pilih top + str((@PageIndex-1)*@PageSize)+ ID dari Tb_News Where +@StrWhere+order by ID desc) sebagai tblTmp ) dan +@StrWhere+ pesan berdasarkan ID desc
setel @strCountSQL=pilih hitungan(ID) sebagai hitunganx dari Tb_News Where +@StrWhere+
Akhir
kalau tidak
Mulai
Setel @strSQL=@strTmp + di mana ID < (pilih min(ID) dari (pilih top + str((@PageIndex-1)*@PageSize)+ ID dari Tb_News diurutkan berdasarkan ID desc)as tblTmp ) diurutkan berdasarkan ID desc
setel @strCountSQL=pilih hitungan(ID) sebagai hitunganx dari Tb_News
Akhir
jika @PageIndex = 1
jika @StrWhere<>''
Mulai
Setel @strSQL=@strTmp + Dimana +@StrWhere+ pesan berdasarkan ID desc
Akhir
kalau tidak
Mulai
Setel @strSQL=@strTmp + pesan berdasarkan ID desc
Akhir
eksekutif(@strSQL)
eksekutif(@strCountSQL)
PERGI