Database backend adalah Access. Setelah menggunakannya selama setahun, pelanggan mengatakan bahwa membuka antarmuka sangat lambat. Setelah memeriksa database, saya menemukan ada lebih dari 50.000 catatan di tabel data Ribuan catatan, membuka antarmuka sangat lambat, dan membalik halaman memiliki masalah yang sama. Metode yang saya terapkan adalah memuat 20 catatan per halaman, menulisnya dalam satu lingkaran dan menampilkannya dalam tabel, lalu mengatur empat tombol pembalik halaman. untuk melihat data, tetapi masalahnya adalah Meskipun hanya ada dua puluh catatan yang dimuat ke dalam halaman setiap kali, semua catatan harus dimuat sekaligus setiap kali kumpulan catatan dibuka, sehingga lambat.
Solusi satu:
1.Tetapkan bidang kenaikan otomatis. Dan bidang tersebut adalah INDEX.
2. Karena ini adalah ACCESS, ini hanya dapat digunakan untuk paging front-end. Tujuan dari bidang peningkatan mandiri adalah untuk mewujudkan fungsi paging.
1> Catat nilai terakhir yang bertambah sendiri dari halaman pengguna sebelumnya, seperti M.
2> Halaman selanjutnya, ambil nilai awal halaman.M+1, nilai akhir: M+1+1.5*PAGESIZE (Catatan: Karena database akan memiliki operasi penambahan dan penghapusan, harus ada koefisien untuk ukuran halaman . Anda dapat Menyesuaikan koefisien besar 1 sesuai dengan situasi.
3> Loop front-end mengambil bilah PAGESIZE pertama RS, menuliskannya ke RS baru, dan kembali.
Catatan: RS baru adalah RS tanpa koneksi.
Solusi kedua:
Seratus ribu catatan bukanlah batas database Access. Terlebih lagi, metode Anda bukanlah paging dalam arti sebenarnya (properti PageSize dan AbsolutePage harus digunakan).
Kode VBScript
Copy kode kodenya sebagai berikut:
Setel rs = ADODB.Recordset baru
rs.CursorLocation = adUseClient
rs.Ukuran Halaman = 20
rs.Open Pilih * Dari tamu, iConc, adOpenKeyset, adLockOptimisticlng
Halaman = rs.PageCount
lngHalaman Saat Ini = 1
Kumpulan rekor yang dibuka saat ini hanya memiliki 20 rekor.
Saat membalik halaman:
Copy kode kodenya sebagai berikut:
Jika lngCurrentPage < lngPages Lalu
lngCurrentPage = lngCurrentPage + 1
rs.AbsolutePage = lngCurrentPage
Akhiri Jika