|
|
|
-Сергей- |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 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 --------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет". |
|||
|
||||
Vas |
|
|||
Опытный Профиль Группа: Участник Сообщений: 828 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Jquery или читсый JS используют, но это как раз работает с LIMIT. Т.е. каждый раз при достижении конца страницы отправляется асинхронный запрос за новыми порциями и БД их выдает. MyDAC и UniDAC умеют такое, про ADO не подскажу, нет установленных на рабочем компе дельфей :( -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
DYUMON |
|
|||
Опытный Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: 2 Всего: 3 |
Если у тебя есть в таблице уникальный автоинкрементный ключ тогда делаешь запрос или хранимку такого вида.
соответственно start = 1 и end=1000 и соответственно при нажатие на кнопку будет происходить увеличение данных значений и выбранного диапазона. Это как вариант. Либо почитай про курсоры в mysql |
|||
|
||||
Vas |
|
|||
Опытный Профиль Группа: Участник Сообщений: 828 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
DYUMON, почитайте про LIMIT в MySQL он гарантировано выведет число нужных записей, если они есть. А в Вашем случае в диапазоне уникального ключа могут быть и большие пустоты после удаления данных.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |