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

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

Как ограничит кол-во отбираемых в TQuery [D5, D7, Paradox]


Страницы:   1 2

yaric ©   (2004-03-04 00:11:00) 

Как ограничит кол-во отбираемых в TQuery записей по Select с условием, скажем нужно получить первые 100 записей, select top=100 не работает. И возможно ли отобрать скажем 100 записей начиная с 500-й.


yaric   (2004-03-04 12:59:00) [1]

база на том же компе что и прога с ней работающая, юзера работают через веб, у юзера даже машина не напрягаеться, а сервак пыхтит выбирая ему все это


sniknik   (2004-03-04 12:43:00) [2]

yaric   (04.03.04 12:37) [27]
бред, зачем ограничивать потом? все время уйдет на перекачку данных с сервера(из основной таблицы), а когда данные уже на локали без разници какого оно размера BDE делает прямой доступ (моментально).


sniknik   (2004-03-04 12:39:00) [3]

> Вобщем как я понял с TQuery такое зделать никак не выйдет.
почему не выйдет? извратится можно, но нужно ли?

к примеру одно из... ODBC DSN парадокса (смотрим чтобы драйвер был уже ODBC JT32.dll, если нет доустанавливаем Jet), подключаемся в BDE не к стандартному а к созданному DSN, все получай запросы типа SELECT TOP 100 * FROM Table

(сразу скажу не лутший путь для этой "проблемы"(докачки), по мне лутше организовать докачку в асинхронном режиме, или использовать серверный курсор (нехай залистается ;), можно прервать в любой момент, но вот база и доступ для этого неподходяшие)


yaric   (2004-03-04 12:37:00) [4]

А возможно ли как то самому работать с этим файлом, скажем добавить туда какоето поле типа автоинкремент, а потом из него уже делать выборки?


Anatoly Podgoretsky   (2004-03-04 12:33:00) [5]

Технология там такая, на клиенте создается временный файл, затем в него отбираются все записи по условию, для этого надо пройтись по всей исходной таблице. Сформированый файл отображается.


Anatoly Podgoretsky   (2004-03-04 12:32:00) [6]

В принципе не возможно, поскольку это для десктоп систем, с файл серверной технологией. Вся выборка делается на клиенте.


SPIRIT   (2004-03-04 12:31:00) [7]


>  а потом листать хочет, предлагать уменьшить диапазон

в чём, собственно, листать то ?


yaric   (2004-03-04 12:26:00) [8]

Вобщем как я понял с TQuery такое зделать никак не выйдет.


Anatoly Podgoretsky   (2004-03-04 12:13:00) [9]

Не надо по частям, хочет все пусть и получит все, деже если ему на это потребуется пол дня.


yaric   (2004-03-04 12:11:00) [10]

>А то получается в духе "хочу, чтоб все было".

Условие есть (задает юзер), но если выбирать все сразу долго получаеться, а юзер тупой он хочет получить все начиная с каменного века и по сей день, а потом листать хочет, предлагать уменьшить диапазон, не каждый юзер правильно поймет, так пусть все получает, тока почастям


Desdechado   (2004-03-04 12:10:00) [11]

а ты у него предварительно выспроси, что он хочет, а потом и формируй SQL


yaric   (2004-03-04 12:07:00) [12]

Так юзер полистать желает, сам чегото выбрать, приче чтобы отсортировано было по тому полю, по которому он хочет


Nikolay M.   (2004-03-04 12:06:00) [13]


> вообще мне нужно отобрать записи по условию, причем из этих
> отобранных хочу получить не все (много их однако), а только
> какуюто часть
, причем условие может быть разным

Дык ты сформулируй хотя бы для себя, какую именно часть ты хочешь видеть. А то получается в духе "хочу, чтоб все было".


Desdechado   (2004-03-04 11:56:00) [14]

отбор в TQuery производится по условию WHERE, а не по номкру записи


Zacho   (2004-03-04 11:54:00) [15]

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


yaric   (2004-03-04 11:52:00) [16]

хочу отображать данные постранично, если делать полную выборку, много получаеться и запрос долго работает


Карелин Артем   (2004-03-04 11:51:00) [17]

Завести таблицу в памяти и в нее копировать эти 100 первых.


Zacho   (2004-03-04 11:48:00) [18]

Еще раз: зачем тебе это ? Лично я не знаю никакого разумного применения конструкций типа TOP, кроме как в веб-приложениях и в некоторых случаях для избавления от подзапроса в where.


yaric   (2004-03-04 11:44:00) [19]

так оно у меня есть (основной ключ автоинкремент), да вот я не знаю с какой записи начнут отбираться - условие в запросе то всегда меняется


Zacho   (2004-03-04 11:42:00) [20]

Ну вот и заведи поле с номером записи.


Страницы:   1 2

Наверх

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