Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Физический номер записи   Найти похожие ветки 

 
pavelsinicinV   (2002-11-07 19:22) [0]

Как через SQl определить физический номер записи таблицы ?
Подобная функция имеется для таблиц DBase RECNO()...


 
Ihor Osov'yak ©   (2002-11-07 19:41) [1]

Уважаемый Павел.

Если мне изменяет память, Вам уже примерно неделю назад обьясняли, что делать ориентировку на физический номер записи в реляционных базах не следует. Причем и в доходчивой форме, и несколько в резкой.

Конспективно повторюсь:

1. Большинство релационных баз, работающих по технологии клиент-сервер, не поддерживают такого понятия. То есть соотв. фунции нет.

2. Если Вам все же нужен аналог номера записи - сделайте уникальный ключ (индекс) по полю, значение которого монотоно возрастает. Самый простой способ - автоинкрементное (кстати, его поддерживают не все движки). На основании этого ключа просто написать вычисляемое поле в представлении, запросе, етс, которое будет показывать номер записи, но в общем случае это не будет эквивалетн понятию "номер физической записи".

3. Если у Вас все же есть необходимость знать физический номер записи, то у Вас либо неправильно спроектированна структура базы, либо Вы редкий ...


ЗЫ. Растолкуйте внятно, зачем Вам это нужно.






 
MsGuns ©   (2002-11-07 20:55) [2]

RecNo() возвращает не ФИЗИЧЕСКИЙ номер записи в БД, а ПОРЯДКОВЫЙ номер полученного курсора (подмножества сущностей БД)


 
MsGuns ©   (2002-11-07 21:07) [3]

Пардон, между "номер" и "полученного" следует читать еще "строки/записи"

PS Если ПОРЯДКОВЫЙ номер записи в НД Вам нужен для того, чтобы ориентироваться относительно начала и конца НД (типа запись 456 из 9074), а формат БД не поддерживает RecNo(), Вам необходимо в запросе формировать одно искусственное поле (посредством, например, CAST(MIN|MAX(Goods_Kol) AS INTEGER) as "NPP"), а потом в цикле

i:=1; q.First;
While Not q.Eof do begin
q.FieldByName("NPP").AsInteger := i;
inc(i);
q.Next;
end;
q.First; // Вернуться в начало строки

и только после этого "подавать" его в контролы. В этом случае и только если Вы не будете использовать фильтры или индексы для переупорядочивания, а также добавлять и удалять записи, поле NPP будет содержать относительный номер активной записи внутри курсора.





Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
4-83081
daan_m
2002-10-12 12:10
2002.11.25
Как запустить прогу на удалённом компе


1-82826
Vovaka
2002-11-13 16:48
2002.11.25
Как определить, что с приложением никто не работает


1-82794
Live_Aus_Berlin
2002-11-13 16:27
2002.11.25
У кого нибудь есть исходники проги, которая считает производные


14-82947
Пиноккио
2002-11-05 21:33
2002.11.25
Помогите - NAN


6-82888
qqqqq111
2002-09-19 05:32
2002.11.25
Download manager для LAN