Бэкэнд-база данных - Access. После года использования клиент сказал, что открытие интерфейса происходит очень медленно. После проверки базы данных я обнаружил, что в таблице данных более 50 000 записей. Я попробовал скопировать записи до 10. Тысячи записей, интерфейс открывается очень медленно, и при перелистывании страниц возникает та же проблема. Метод, который я использовал, состоит в том, чтобы загрузить 20 записей на страницу, записать их в цикле и отобразить в таблице, а затем установить четыре клавиши перелистывания страниц. для просмотра данных, но проблема в том, что хотя на страницу каждый раз загружается только двадцать записей, все записи должны загружаться одновременно каждый раз при каждом открытии набора записей, поэтому это происходит медленно.
Решение первое:
1. Установите поле автоинкремента и поле ИНДЕКС.
2. Поскольку это ДОСТУП, его можно использовать только для внешнего подкачки. Целью саморасширяющегося поля является реализация функции подкачки.
1> Запишите последнее самоувеличенное значение предыдущей страницы пользователя, например M.
2> На следующей странице возьмите начальное значение страницы.M+1, конечное значение: M+1+1,5*PAGESIZE (Примечание: поскольку в базе данных будут выполняться операции добавления и удаления, должен быть коэффициент для размера страницы Вы можете настроить большой коэффициент 1 в зависимости от ситуации.
3> Внешний цикл берет первый бар PAGESIZE RS, записывает его в новый RS и возвращает.
Примечание. Новый RS представляет собой RS без установления соединения.
Решение второе:
Сто тысяч записей — это не предел базы данных Access. Более того, ваш метод не является подкачкой в полном смысле этого слова (необходимо использовать свойства PageSize и AbsolutePage).
Код VBScript
Скопируйте код кода следующим образом:
Установить rs = Новый ADODB.Recordset
rs.CursorLocation = adUseClient
rs.PageSize = 20
rs.Open Select * От гостя, iConc, adOpenKeyset, adLockOptimisticlng
Страницы = rs.PageCount
lngCurrentPage = 1
Набор записей, открытый в это время, содержит всего 20 записей.
При перелистывании страниц:
Скопируйте код кода следующим образом:
Если lngCurrentPage < lngPages Тогда
lngCurrentPage = lngCurrentPage + 1
rs.AbsolutePage = lngCurrentPage
Конец, если