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

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

LAW

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

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

LAW

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

Barmutik

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

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

LAW

Гость
#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
2
Минск
#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
2
Минск
#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

LAW

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

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

Barmutik

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

LAW

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

Barmutik

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

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

LAW

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

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