Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли узнать номер физической записи...


Страницы:   1 2

Piter ©   (2004-08-05 17:17:00) 

в SQL базах?
Например, можно это сделать в Firebird, MSSQL?


Piter   (2004-08-05 19:45:00) [21]

s999   (05.08.04 18:46) [11]
Ты бы объяснил, что у тебя за задача


просто узнать...


}|{yk   (2004-08-05 19:25:00) [22]

Ну в Oracle можно использовать rowid, но они нестабильны могут быть


Anatoly Podgoretsky   (2004-08-05 19:21:00) [23]

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


VID   (2004-08-05 19:08:00) [24]

VID ©   (05.08.04 19:06) [12]
забыл добавить, что само поле "ID" делают первичным ключем.


VID   (2004-08-05 19:06:00) [25]

Piter, обычно для получения уникального номера записи, создают поле "ID", куда при каждом добавлении новой записи, записывается значение генератора, который перед этим инкрементируется на 1. Это уникальное число и будет "удостоверением личности" записи в течении всей её жизни. Ни о каких RecordNumber в потомках TDataSet и думать не следут, если необходимо уникально идентифицировать запись.


s999   (2004-08-05 18:46:00) [26]

Ты бы объяснил, что у тебя за задача, зачем тебе это нужно, может чего посоветовали бы.

Johnmen имеет в виду dbkey. Он стабилен в рамках только одной транзакции, размер его зависит от числа таблиц в запросе, а работа с ним весьма нетривиальна. Поэтому лучше объясни.


Piter   (2004-08-05 18:34:00) [27]

Johnmen ©   (05.08.04 17:50) [8]
Нет. Он совсем другое...:)


ну а как? Это число или что? Как оно выбирается. какой диапазон имеет?


sniknik   (2004-08-05 18:05:00) [28]

> Вот и все!
не все, допустим ты сделал удаление в первых записях, что получится при следующем запросе? это разве правильная идентификация?
не говоря уже о том что порядок можно получить и просто ничего не делая (самому), а админ к примеру компакт базе сделал, добавил/сменил кластерный индекс, или MSSQL план поменял, и все, придет запрос в другой последовательности.

> Но можно и без Query... С помощью TAdoTable.
а запусти профайлер и посмотри что при открытии TAdoTable произойдет.


Johnmen   (2004-08-05 17:50:00) [29]

>Piter ©   (05.08.04 17:34) [6]

Нет. Он совсем другое...:)


46_55_41_44   (2004-08-05 17:42:00) [30]


> 46_55_41_44 ©   (05.08.04 17:19) [2]
> это будет номер в рекордсете. никакой информации по идентификации
> записи от запроса к запросу не несет.

Select * From Table1
Вот и все!
и RecNo будет нормально работать...
Но можно и без Query... С помощью TAdoTable.


Piter   (2004-08-05 17:34:00) [31]

Johnmen ©   (05.08.04 17:25) [4]
В IB/FB/YA можно узнать идентификатор "физической записи"...


а он в общем тоже самое, что и номер записи, да? То есть, начинается с 1 (или там с 0) и продолжается далее. Или нет?

А как с этим дело обстоит в MSSQL?


Rule   (2004-08-05 17:29:00) [32]

Piter ©   (05.08.04 17:17)
Можно вставить рендом (как советовал АП) эфект будет тот же


Johnmen   (2004-08-05 17:25:00) [33]

В IB/FB/YA можно узнать идентификатор "физической записи"...
А понятия "номер" не существует. Везде.


sniknik   (2004-08-05 17:22:00) [34]

46_55_41_44 ©   (05.08.04 17:19) [2]
это будет номер в рекордсете. никакой информации по идентификации записи от запроса к запросу не несет.


46_55_41_44   (2004-08-05 17:19:00) [35]

AdoTable.RecNo
или
AdoQuery.RecNo


Sandman25   (2004-08-05 17:18:00) [36]

Зачем?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо