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

  • Автор темы LAW
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L
#1
Приветствую форумчане!
Поломал уже все копья :) подскажите.
Как же всё таки получить порядковый номер записи в Query после запроса по SELECT FROM WHERE?
RecNo просьба не предлагать ибо он возвращат физический номер записи.

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

Barmutik

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

Тогда проясните что вы подразумевате под физическим номером и порядковым ?
 
04.09.2006
2 566
3
#5
<!--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

#6
Для: European

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

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

Спасибо за внимание.
 
04.09.2006
2 566
3
#8
<!--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

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

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

Хотя с Сайбэйсом я последний раз в 2000 году работал .. может с тех пор они что-то такое хитрое и придумали ...
 
04.09.2006
2 566
3
#10
Для: 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
#11
На сколько я знаю, такого общепринятого понятия не существует, но часто под физическим номером записи понимают некое число, соответствующее порядку выбора записей из физической таблицы до наложения на выборку каких-либо ограничений и условий. Единственным разумным оправданием использования физического номера является ограничение на количество записей, выбираемых из таблицы, и некоторые виды сортировок и то, как правило, это результат или плохого проектирования, или неуемных требований пользователей.
Да мне как раз физический номер записи-то и не нужен. Мне б логический поиметь.

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

Barmutik

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

Barmutik

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

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

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