![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как в запросе определить номер записи? [D7, MSSQL]
logslava © (2007-05-05 18:50:00)Простите за глупый вопрос, но как определить номер записи в таблице SQL-запросом? Что-то вроде этого:
select REC_NO(???)
from Table
where ID=123
ps. первый раз запостил в конференцию "Основная" - промазал, прошу прощения
sniknik (2007-05-05 20:04:00) [1]спам
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1178376142&n=18
logslava (2007-05-05 19:24:00) [2]спасибо! интересная подборочка!
MOA (2007-05-05 19:18:00) [3]Ага. Т.е имелась в виду всё же нумерация записей в результирующем рекордсете.
Попробуйте посмотреть тут:
http://www.sql.ru/faq/faq_topic.aspx?fid=126
Удачи!
logslava (2007-05-05 19:13:00) [4]спасибо, это мне известно.. но помнится как-то где-то такую функцию мельком видел, но не придал этому значения...
вобщем нужно добавить в запрос вычисляемый столбец, в котором просто идет нумерация строк:
select REC_NO(?) as RecordNumber, ExistingField1, ExistingField2
from Table
как тогда? с пом. курсора и дополнительной переменной, которую инкрементировать на каждой итерации и записывать в это поле?
MOA (2007-05-05 19:06:00) [5]Записи в отношении не имеют номеров - стало быть, и определить их нельзя. Единственное средство различить один кортеж от другого - первичный ключ (который в пределе может состоять из всех атрибутов кортежа).
Можно, конечно, пронумеровать на клиентской части записи в рекордсете, полученном от сервера, если есть такая необходимость - в конечном счёте, на клиентской стороне записи рекордсеты хранятся в каком-то подобии массива.
Ещё раз - строки таблицы (кортежи отношения) не имеют номеров (не пронумерованы). Отношение - это множество, а элемент множества не имеет атрибута "номер".
Удачи!