Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Порционный вывод данных 
:(
    Опции темы
-Сергей-
Дата 28.4.2016, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 2.8.2003
Где: Россия

Репутация: нет
Всего: 1



Всем привет!
Может вопрос вообще не в этот раздел, но так как он все же связан с базами данных, думаю что все-таки сюда.
Есть таблица в MySQL, в которой ~5 млн записей, которая постоянно растет. Грузить ее всю в датасет для простого просмотра это полный бред. Долгое выполнение, нехватка памяти и т.д.
Так вот, как можно реализовать вывод данных по частям?
Про оператор LIMIT я знаю, прошу не предлагать, так как это формирование нового запроса к базе и его выполнение заново.
Для подключения к БД использую ADO (MySQL ADO Driver),  грид от EhLib (TDBGridEh), Delphi XE10
Наверное многие знают такой инструмент под названием PL/SQL Developer, так там как раз такая функция есть. Сначала грузится какое-то количество записей, нажал на кнопку и еще подгрузилось.
Да и на многих сайтах такая функция есть, взять например соцсети, листаешь вниз и данные добавляются. С веб разработками мало знаком, наверно jquery называется.
Может я привожу в сравнение разные базы и разные технологии (веб и десктоп), но все же...

Это сообщение отредактировал(а) -Сергей- - 28.4.2016, 23:00
--------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет".
PM MAIL WWW ICQ MSN   Вверх
Vas
Дата 29.4.2016, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(-Сергей- @  28.4.2016,  22:37 Найти цитируемый пост)
Да и на многих сайтах такая функция есть, взять например соцсети, листаешь вниз и данные добавляются. С веб разработками мало знаком, наверно jquery называется.

Jquery или читсый JS используют, но это как раз работает с LIMIT. Т.е. каждый раз при достижении конца страницы отправляется асинхронный запрос за новыми порциями и  БД их выдает.

MyDAC и UniDAC умеют такое, про ADO не подскажу, нет установленных на рабочем компе дельфей :(


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
DYUMON
Дата 30.5.2016, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: 2
Всего: 3



 Если у тебя есть в таблице уникальный автоинкрементный ключ  тогда делаешь запрос  или хранимку такого вида.

Код

SELECT * FROM table WHERE id>=:start AND id<=:end

соответственно start = 1 и end=1000
и соответственно при нажатие на кнопку будет происходить увеличение данных значений и выбранного диапазона. Это как вариант.
Либо почитай про курсоры в mysql


--------------------
Всех программистов надо посадить на целероны, что бы впредь головой думали что пишут.
user posted image
PM MAIL ICQ Skype   Вверх
Vas
Дата 1.6.2016, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



DYUMON, почитайте про LIMIT в MySQL он гарантировано выведет число нужных записей, если они есть. А в Вашем случае в диапазоне уникального ключа могут быть и большие пустоты после удаления данных.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1222 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.