Форум: "Базы";
Текущий архив: 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.03 c