Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос по БД [D7]


aKor ©   (2008-10-31 01:22:00) 

Подскажите как не выбирать все записи из таблицы, а выбирать, скажем только 15 а по AfterScroll Дата Сета выбирать уже следующий диапазон(limit)

БД InterBase


aKor   (2008-11-02 18:45:00) [1]

Ок, спасибо


Германн   (2008-11-02 01:25:00) [2]

3. Не делать
> select *
(с) (Перечислять всех кому принадлежит этот копирайт слишком долго :)


Johnmen   (2008-11-02 01:10:00) [3]

1. Не выбирать зараз много записей. Это стандартно.
2. Когда все записи получены на клиента, ни о какой нагрузке на сервер речь не идет, хоть облистайся... Вот только эта загрузка м.б. не быстрой.
Таблица в "7000-9000" записей - это просто смешное количество...


aKor   (2008-11-02 00:51:00) [4]

Весь вопрос в том как снять нагрузку с сервера.
Есть одна таблица  клиентов с полем "status" , пользователь без конца кликает на кнопки условий выбора из этой таблицы по полю статус, так как другие пользователи в сетке часто меняют статусы у клиента, а таблица большая(относительно), примерно "7000-9000" записей.
Но все дело в том что пользователи хотят Перебирать все записи стрелочками, Поэтому нужно выбирать(select)  только видимые записи в
DBGrid, что бы не было так "больно" при кликах на кнопках выбора, а потом делать выбор следующего дипазона записей, но если много людей будут активно Скролить DBGrid это тоже определенная нагрузка(при каждом нажатии стрелочки(верх, низ) нужно делать такой запрос: select * from clients where status = 'какой-то статус' limit n,m), вот я и хочу спросить совета, как лучше сделать, что бы не изобретать это трюк с limit -ом записей в таблицы


Johnmen   (2008-10-31 16:24:00) [5]


> Труп Васи Доброго ©   (31.10.08 16:15) [4]

Не надо советовать, чего сам не знаешь.
Никогда предикатов FIRST и SKIP в InterBase не было.


Труп Васи Доброго   (2008-10-31 16:15:00) [6]

вот так надо делать
SELECT [FIRST <value>] [SKIP <value>] <select list>
   FROM <table expression list>


Правильный$Вася   (2008-10-31 12:18:00) [7]

использовать ClientDataSet с включенной опцией PacketRecords

но сам подход чреват тормозами


MsGuns   (2008-10-31 10:56:00) [8]

А зачем нужно "перебирать" ВСЕ записи таблицы - неужели нельзя использовать запросы ?


Германн   (2008-10-31 02:06:00) [9]


> aKor   (31.10.08 01:22)
>
> Подскажите как не выбирать все записи из таблицы, а выбирать,
>  скажем только 15 а по AfterScroll Дата Сета выбирать уже
> следующий диапазон(limit)
>

Ух как классно закручено! :)
И смешено!
P.S. "смешено" - это не очепятка!  Это новояз! :)


> вопрос по БД [D7]
>
> aKor   (31.10.08 01:22)

Объясни задачу простыми словами. Подчёркиваю - Задачу, а не вопрос.


Наверх

Титульная страница Поиск, карта сайта Написать письмо