|
|
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вроде работает, но может есть способ получше... Если вдруг таблиЦка окажется большой, то будут ли тормоза? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2003, 12:35 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
A зачем выбирать записи с 3-й по 5-ую??? Для чего??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 06:31 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
A зачем выбирать записи с 3-й по 5-ую??? Для чего??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 06:31 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
постраничный вывод на web, например. и еще есть компоненты nativedb. Так вот при открытии ОЧЧень больших таблиц, он не качает весь результат запроса на клиент, а только порциями, т.е. когда ползунок грида двигаешь, тогда видно, что данные тебе закачиваются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 08:36 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
ASA 9 SELECT statements can now include START AT as part of the TOP clause START AT provides additional flexibility in queries that explicitly limit the result set. row-limitation : FIRST | TOP n [ START AT m ] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 20:53 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
Спасибо, а если все-таки ASA 8 :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 08:27 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
почемубы не исспользовать курсоры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2003, 08:43 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
Для Weba записи с 3-й по 5-ю должен выбирать все равно клиент получающий данные от сервера и формирующий страницу отображаемую броузером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2003, 06:16 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
ну выбрать три записи из 10 - это просто, а 3 из миллиона? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2003, 01:30 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
-Timka- Если у Вас в таблице есть primary или unique key, то можно при получениях порций данных отталкиваться от него: Код: plaintext 1. 2. 3. 4. 5. Клиент при следующем запросе в @Last_id должен подставить значение ключа последней записи набора данных или NULL для получения первой порции записей. Однако при этом способе могут возникнуть проблемы, если на клиента должны идти отсортированные не по ключу данные. Хотя по идее тогда можно попробовать так: Код: plaintext 1. 2. 3. 4. 5. 6. Принцип тот же, что и в примере выше, только что вместо уникально идентифицирующего запись ключа береться составной ключ из полей, участвующих в сортировке. Они кстати должны быть в сумме уникальны. Еще как способ - открыть на клиенте соотвествующий серверный курсор и данные гонять через него, но я бы не рекомендовал с ним связываться. Еще добавлю от себя, что все вышеперечисленные способы не очень то подходят для моментов, когда между считываниями очередных порций данных эти данные были добавлены, изменены и удалены. P.S.Я бы рекомендовал Вам не рыть в сторону "Как сделать", а подумать над структурой Вашей таблицы rtc - в основном многие проблемы реализации и не хватающей функциональности РСУБД решаются в первую очередь правильной проектировкой БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2003, 03:19 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
на ASE 11.9.2 select top 10 from table_name не работает %_((.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 17:55 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
Можно так: set rowcount 10 select * from <table> where <clause> set rowcount 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 18:07 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
мне нужно получить 10 строк запроса начиная с 20той. в сабейсе насколько я понял это просто невозможно. честно говоря после посгреса я был в шоке от такого... %-(((... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 18:26 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
А если так select top 5 id,.... from t where id not in (select top 10 id from t) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 19:28 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
roleksА если так select top 5 id,.... from t where id not in (select top 10 id from t) говорю же, конструкция top в Sybase отсутствует... по крайней мере в 11.9.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 10:58 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
автормне нужно получить 10 строк запроса начиная с 20той. в сабейсе насколько я понял это просто невозможно. честно говоря после посгреса я был в шоке от такого... %-(((... А Вы запрос составте так, что бы из базы получить ровно столько строк, сколько нужно. Или с этим серьезные проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 12:36 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
ErmakА Вы запрос составте так, что бы из базы получить ровно столько строк, сколько нужно. Или с этим серьезные проблемы? Может научите неуча, как без top без limit сделать такой запрос, чтобы получить только нужное количество строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:44 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
Написали же set rowcount юзать. И без TOP будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:47 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
135Может научите неуча, как без top без limit сделать такой запрос, чтобы получить только нужное количество строк? Приходите - научу. К великому сожалению, вы так внятно и не смогли пока, объяснить зачем вам нужно выбирать с 3й - по 20ю запись из результата запроса. Мой опыт, не даёт поверить вам, что нельзя обойтись без top и limit. Мне ужасно интересно узнать - почему же вам это так необходимо? -Вы что ещё до выполнения запроса знаете, что вам на 100% понадобятся строки 3 - 10? -На основании каких признаков, вы из всего результата выделяете именно их? -Почему эти признаки, грубо говоря, нельзя описать в выражении Where оператора Select ? -Почему нельзя в клиентском приложении из ResultSet'a выбрать нужные вам записи? -Какие по вашему мнению задачи должны выполнятся сервером, а какие клиентом? -Какова архитектура вашего приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 05:57 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
ErmakК великому сожалению, вы так внятно и не смогли пока, объяснить зачем вам нужно выбирать с 3й - по 20ю запись из результата запроса. Мой опыт, не даёт поверить вам, что нельзя обойтись без top и limit. Мне ужасно интересно узнать - почему же вам это так необходимо? Это необходимо для постраничного вывода на веб-станице. Ermak -Вы что ещё до выполнения запроса знаете, что вам на 100% понадобятся строки 3 - 10? Да. Ermak -На основании каких признаков, вы из всего результата выделяете именно их? На основании того признака, что с веб-страницы приходит запрос на отображение следующих n строк. Ermak -Почему эти признаки, грубо говоря, нельзя описать в выражении Where оператора Select ? Потому что нет такого поля, которое бы во всех возможных вариантах сортировки позволило бы выполнить эту задачу через where Ermak -Почему нельзя в клиентском приложении из ResultSet'a выбрать нужные вам записи? Потому что сама идеология Sybase говорит о том, что не надо делать операции ненужного ввода-вывода, что транспорт между клиентом и сервером есть одно из узких мест системы и что надо в процедурах выполнять все необходимые действия, выдавая в результатах только необходимые данные. В принципе я с этим согласен. Ermak -Какие по вашему мнению задачи должны выполнятся сервером, а какие клиентом? В случае с отображением в вебе, сервер предоставляет клиенту результаты запроса. Когда просто вывели весь результат одной таблицей - тут проблем нет, но когда в результате получаем под 10000 строк (минимум) и необходимо отобразить на одной странице по 20 например, то мне нужны каждый раз только определённые 20 и я не хочу перегружать транспорт и клиента остальными не нужными в данный момент 9980 строками. З.Ы. вы так и не сказали при чём тут негры. ---- Сергей Васкецов - я могу таким образом выбрать только первые n строк, а как мне выбрать n строк начиная со строки n+1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 08:23 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
прошу прощения, с неграми ошибся адресом %-)))... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 08:25 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
Да и ещё. ErmakПриходите - научу. А разве дистанционно нельзя? Вы бить меня собираетесь чтоли? %-))).. для чего обязательно приходить? ;-)))... давайте попробуем через форум всё-таки %-))).. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 08:28 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
Ermak, если нет какой-то функциональности в сервере, ее надо добавить (в АСА 9 ведь добавили), а постоянно заявлять что данная операция есть следствие напонимания чего-то - по сути та же самая ошибка с вашей стороны. Вывод результат порциями - самая распространенная операция в вебе. Например, MySQL давно имеет для этого необходимые команды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 09:19 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
авторВывод результат порциями - самая распространенная операция в вебе. Возможно, спорить не буду. Сколько раз будет выполняться запрос на стороне сервера если я например захочу просмотреть все 300-500 страниц, которые могут быть сформированы в результате запроса? Или при этом по сети пройдет меньший трафик? Ни в коем случае. Не понятно почему нельзя результат запроса кэшировать на клиенте и по мере необходимости выдавать его в интернет. Даже если это и веб, то задача задаче рознь? Если это что-то Google, Yahoo, Yandex'a - это одна ситуация. Если это внутрикорпоративный сайт - другая. Для того что бы предметно что-то обсуждать по данному поводу, необходимо знать полные условия задачи, если их нет, то каждый остается при своем мнении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 11:38 |
|
||
|
Ну вот и я снова... Выбрать записи с 3-ей по 5-ую, например...
|
|||
|---|---|---|---|
|
#18+
ErmakСколько раз будет выполняться запрос на стороне сервера если я например захочу просмотреть все 300-500 страниц, которые могут быть сформированы в результате запроса? Или при этом по сети пройдет меньший трафик? Ни в коем случае. Выполнится столько раз, сколько будет необходимо. Более того. Каждый раз будет отдано только необходимое количество данных. То есть если надо - то пролистается весь вывод. Если не надо - то только то, что необходимо. Больший трафик не пройдёт а вот меньший - да. За счёт того, что не всем, далеко не всем нужны все результаты... Ermak Не понятно почему нельзя результат запроса кэшировать на клиенте и по мере необходимости выдавать его в интернет. Потому что речь идёт о транспорте между СУБД и клиентом и о том, что это узкое место в системе... и о том, что по рекомендациям сабейса (и по моим личным убеждениям) нагружать его ненужным трафиком нельзя. Ermak Даже если это и веб, то задача задаче рознь? Если это что-то Google, Yahoo, Yandex'a - это одна ситуация. Если это внутрикорпоративный сайт - другая. Общие моменты они одинаковы везде. Только при ошибке в корпоративном сайте мы можем либо не получить отдачи либо получим но последствия эти будут незначительны по сравнению с теми, которые мы бы отгребли при аналогичном косяке на "врослом" проекте. Ermak Для того что бы предметно что-то обсуждать по данному поводу, необходимо знать полные условия задачи, если их нет, то каждый остается при своем мнении. Дык я вам предметно вроде как и говорю. Условия - есть таблица 7 колонок. 1 колонка - первичный ключ. Надо выводить данные постранично с возможностью сортировки по всем столбцам. Если Sybase не поддерживает SQL92 по top & limit, то что делать? Такая классная платная ASE и проигрывает какой-то куцой MySQL... Мы в своё время ходили в лаптях (читай FOXPRO) ну так это ведь не аргумент? Мои аргументы - это рекомендации Sybase и SQL92. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 12:06 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32562843&tid=2014428]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 389ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...