Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > Порционный вывод данных |
Автор: -Сергей- 28.4.2016, 22:37 |
Всем привет! Может вопрос вообще не в этот раздел, но так как он все же связан с базами данных, думаю что все-таки сюда. Есть таблица в MySQL, в которой ~5 млн записей, которая постоянно растет. Грузить ее всю в датасет для простого просмотра это полный бред. Долгое выполнение, нехватка памяти и т.д. Так вот, как можно реализовать вывод данных по частям? Про оператор LIMIT я знаю, прошу не предлагать, так как это формирование нового запроса к базе и его выполнение заново. Для подключения к БД использую ADO (MySQL ADO Driver), грид от EhLib (TDBGridEh), Delphi XE10 Наверное многие знают такой инструмент под названием PL/SQL Developer, так там как раз такая функция есть. Сначала грузится какое-то количество записей, нажал на кнопку и еще подгрузилось. Да и на многих сайтах такая функция есть, взять например соцсети, листаешь вниз и данные добавляются. С веб разработками мало знаком, наверно jquery называется. Может я привожу в сравнение разные базы и разные технологии (веб и десктоп), но все же... |
Автор: DYUMON 30.5.2016, 11:57 | ||
Если у тебя есть в таблице уникальный автоинкрементный ключ тогда делаешь запрос или хранимку такого вида.
соответственно start = 1 и end=1000 и соответственно при нажатие на кнопку будет происходить увеличение данных значений и выбранного диапазона. Это как вариант. Либо почитай про курсоры в mysql |
Автор: Vas 1.6.2016, 07:40 |
DYUMON, почитайте про LIMIT в MySQL он гарантировано выведет число нужных записей, если они есть. А в Вашем случае в диапазоне уникального ключа могут быть и большие пустоты после удаления данных. |