Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Как ограничит кол-во отбираемых в TQuery   Найти похожие ветки 

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

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


 
Zacho ©   (2004-03-04 00:18) [1]

В LocalSQL - никак. Или заведи в таблице поле "номер записи", по нему и отбирай.
А зачем тебе это ?


 
Nikolay M. ©   (2004-03-04 09:07) [2]

Что для тебя есть первые записи в таблице?
Для разжевывания вопроса: представь себе всю числовую ось вещественных чисел, назови, какое число является первым, какое - вторым и тд?


 
Кщд   (2004-03-04 09:15) [3]

Nikolay M. ©   (04.03.04 09:07) [2]
первое на вещ. оси - ноль
второе, соответственно - не ноль
так что - легко :)

yaric   (04.03.04 00:11)  
а то, что записи в бд, согласно канонам, не "пронумерованы" - верно


 
Johnmen ©   (2004-03-04 09:21) [4]

Кщд   (04.03.04 09:15) [3]

А я думал, что -оо ... :)


 
Nikolay M. ©   (2004-03-04 09:37) [5]


> Кщд   (04.03.04 09:15) [3]
> первое на вещ. оси - ноль
> второе, соответственно - не ноль

"Не ноль" - это не число.


> Johnmen ©   (04.03.04 09:21) [4]
> А я думал, что -оо ... :)

-оо в области вещественных чисел это тоже не число :)))


 
Кщд   (2004-03-04 10:05) [6]

Nikolay M. ©   (04.03.04 09:37) [5]
понимаю, что оффтоп :)
с oo напр., в тфкп работаем как с числом, точнее, с точкой
так что считаю - Johnmen"у плюсик :)


 
Nikolay M. ©   (2004-03-04 10:07) [7]


> Кщд   (04.03.04 10:05) [6]
> Nikolay M. ©   (04.03.04 09:37) [5]
> понимаю, что оффтоп :)
> с oo напр., в тфкп работаем как с числом, точнее, с точкой

Вообще-то в [2] речь была о вещественных числах, откуда вдруг комплексные взялись?


 
Кщд   (2004-03-04 10:37) [8]

Nikolay M. ©   (04.03.04 10:07) [7]
тфкп, как пример
в вещ. анализе тоже рассматриваем поведение различных агрегатов в бескон. удал. точке, так?


 
Nikolay M. ©   (2004-03-04 10:47) [9]


> Кщд   (04.03.04 10:37) [8]
> Nikolay M. ©   (04.03.04 10:07) [7]
> тфкп, как пример
> в вещ. анализе тоже рассматриваем поведение различных агрегатов
> в бескон. удал. точке, так?

На здоровье, рассматривай. Но ты не имеешь права сказать "в точке оо значение функции равно 0", потому что на множестве обычных вещественных чисел точки оо не существует (поэтому, в частности, нет операции деления на нуль). Хочешь оперировать бесконечностью как числом, переноси рассмотрение на расширенную числовую ось, [-оо, оо], в отличие от (-оо, оо). Там ты можешь делить на 0 и записи вроде "1/х = 0, при х = оо" будут математически строгими, а не условными.


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

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


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

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


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

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


 
Zacho ©   (2004-03-04 11:48) [13]

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


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

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


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

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


 
Zacho ©   (2004-03-04 11:54) [16]

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


 
Desdechado ©   (2004-03-04 11:56) [17]

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


 
Nikolay M. ©   (2004-03-04 12:06) [18]


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

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


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

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


 
Desdechado ©   (2004-03-04 12:10) [20]

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


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

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

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


 
Anatoly Podgoretsky ©   (2004-03-04 12:13) [22]

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


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

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


 
Anatoly Podgoretsky ©   (2004-03-04 12:32) [24]

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


 
SPIRIT ©   (2004-03-04 12:31) [25]


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

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


 
Anatoly Podgoretsky ©   (2004-03-04 12:33) [26]

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


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

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


 
sniknik ©   (2004-03-04 12:39) [28]

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

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

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


 
sniknik ©   (2004-03-04 12:43) [29]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.034 c
4-1070012026
FireMan_Alexey
2003-11-28 12:33
2004.04.04
Блокировка клавиатуры


9-1063795051
HoloCaust
2003-09-17 14:37
2004.04.04
AI в играх типа NFK


1-1079694228
Alex*
2004-03-19 14:03
2004.04.04
Опять Excel – специальная вставка


1-1079353222
PiratA
2004-03-15 15:20
2004.04.04
MDI children


3-1078569361
dir_err
2004-03-06 13:36
2004.04.04
создаие аналога