Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Как ограничит кол-во отбираемых в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.033 c
3-1078404138
AlexA
2004-03-04 15:42
2004.04.04
как в run-time создать обработчик CalcFields


4-1074793449
.Влад
2004-01-22 20:44
2004.04.04
информация по написанию плагинов.


14-1078687616
Proz
2004-03-07 22:26
2004.04.04
Тупая ошибка


1-1079699441
lika
2004-03-19 15:30
2004.04.04
StringList что не так?


8-1068823025
Pirate
2003-11-14 18:17
2004.04.04
AVI без TMediaPlayer?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский