• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Нужен порядковый номер записи из Sql выборки

  • Автор темы LAW
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

LAW

Приветствую форумчане!
Поломал уже все копья :) подскажите.
Как же всё таки получить порядковый номер записи в Query после запроса по SELECT FROM WHERE?
RecNo просьба не предлагать ибо он возвращат физический номер записи.

Жду советов, спасибо.
 
E

European

Для чего это нужно, т.к. от этого зависит способ решения
 
L

LAW

Это нужно для того что бы показать пользователю. Где он находится по отношению к первой и последней записи.
что-то типа: вы находитесь на 25 записи из 99.
 
B

Barmutik

Ммм..я всегда думал что RecNo возвращает порядковый номер записи в курсоре.. да и в хелпе так написано ..

Тогда проясните что вы подразумевате под физическим номером и порядковым ?
 
E

European

<!--QuoteBegin-Barmutik+14:12:2006, 11:32 -->
<span class="vbquote">(Barmutik @ 14:12:2006, 11:32 )</span><!--QuoteEBegin-->я всегда думал что RecNo возвращает порядковый номер записи в курсоре
[snapback]50782" rel="nofollow" target="_blank[/snapback]​
[/quote]
Я тоже так думал, поэтому и спросил для чего это нужно... Может нумерация записей не поддерживается сервером? Если я не ошибаюсь, то есть функция IsSequenced (или что-то около того), которая говорит о возможности нумерации записей в наборе. Если я не прав, то исправьте...
 
B

Barmutik

Для: European

Да вроде всю жизнь работал RecNo, порядковый номер в курсоре.. бывали случае что RecordCount возвращает -1, но это другое...

А так стандартный вариант RecNo/RecordCount .. если количество -1, то отдельным запросом считаем количество...
 
L

LAW

Я работаю с Sybase iAnywhere Advantage Database Server 8.0 (ADS) в связке с Билдером 6 через компоненты Dataset разработанные Sybase iAnywhere. По идее сервер держит SQL 92. Но как выясняется при разработке не полностью. Так вот это один из непонятных мне моментов.
Попробуйте на своих серверах если не сложно, что возвращает RecNo после выполнения SELECT c WHERE? У меня возвращается физический номер записи в базе. То есть если брать RecNo после селекта, то номера идут например: у первой записи 1, у второй может быть 50, у третьей 100.

Спасибо за внимание.
 
E

European

<!--QuoteBegin-LAW+14:12:2006, 13:18 -->
<span class="vbquote">(LAW @ 14:12:2006, 13:18 )</span><!--QuoteEBegin-->Попробуйте на своих серверах если не сложно, что возвращает RecNo после выполнения SELECT c WHERE?
[snapback]50815" rel="nofollow" target="_blank[/snapback]​
[/quote]
Уже сказали, что _порядковый_ номер в наборе...

<!--QuoteBegin-LAW+14:12:2006, 13:18 -->
<span class="vbquote">(LAW @ 14:12:2006, 13:18 )</span><!--QuoteEBegin-->Я работаю ... через компоненты Dataset разработанные Sybase iAnywhere
[snapback]50815" rel="nofollow" target="_blank[/snapback]​
[/quote]
Значит посмотри доки на компоненты, может они действительно возращают физический номер
 
B

Barmutik

Через БДЕ и АДО со всеми мне известными БД RecNo возвращает номер записи в курсоре ..

Я честно говоря вообще впервые слышу понятие ФИЗИЧЕСКИЙ НОМЕР ЗАПИСИ... если бы ещё значение уникального ключа .. а то физический номер ..

Хотя с Сайбэйсом я последний раз в 2000 году работал .. может с тех пор они что-то такое хитрое и придумали ...
 
E

European

Для: Barmutik

<!--QuoteBegin-Barmutik+14:12:2006, 17:27 -->
<span class="vbquote">(Barmutik @ 14:12:2006, 17:27 )</span><!--QuoteEBegin-->Я честно говоря вообще впервые слышу понятие ФИЗИЧЕСКИЙ НОМЕР ЗАПИСИ...
[snapback]50853" rel="nofollow" target="_blank[/snapback]​
[/quote]
На сколько я знаю, такого общепринятого понятия не существует, но часто под физическим номером записи понимают некое число, соответствующее порядку выбора записей из физической таблицы до наложения на выборку каких-либо ограничений и условий. Единственным разумным оправданием использования физического номера является ограничение на количество записей, выбираемых из таблицы, и некоторые виды сортировок и то, как правило, это результат или плохого проектирования, или неуемных требований пользователей.
 
L

LAW

На сколько я знаю, такого общепринятого понятия не существует, но часто под физическим номером записи понимают некое число, соответствующее порядку выбора записей из физической таблицы до наложения на выборку каких-либо ограничений и условий. Единственным разумным оправданием использования физического номера является ограничение на количество записей, выбираемых из таблицы, и некоторые виды сортировок и то, как правило, это результат или плохого проектирования, или неуемных требований пользователей.
Да мне как раз физический номер записи-то и не нужен. Мне б логический поиметь.

Эта база мать её!!! Последователь DBF. Не моя была идея её использовать в проекте. Так вот и мучаюсь теперь. Посмотрел я доки по компонентам: физический номер записи у них-это порядковый номер записи в файле базы данных. К нему можно даже обратиться в WHERE.
Короче всё понятно. Не видать мне нумерации в выборке.
 
B

Barmutik

Так а попробуйте исользоватьстандартные компоненты вместо специализированных ? Неужель и там так будет?
 
L

LAW

В стандартных RecNo работает нормально, но время выборки просто не реальное. На миллионнике требуется больше времени в 10-20 раз.
Буду писать багрепорт производителю, мож в след версиях поправят.
 
B

Barmutik

Ммм.. а может пытаться воспользоваться параметрами сколько записей должно выбираться в одном пакете .. это значительно убыстрает ответ сервера ...

Хотя конечно родные компоненты явно должны быстрее работать... на то они и родные ...
 
L

LAW

Угу.
Всё тема, можно сказать, раскрыта (закрыта) в связи с криворукостью разработчиков. :D

Всем спасибо.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!