![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
порядковый номер записей
sashapont © (2004-07-23 04:51:00)Додскажите плиз как сделать чтобы вместе с каждой новой записью автоматически добавлялся её порядковый номер в соседний столбик?
sashapont (2004-07-23 20:25:00) [1]Я юзаю простую базу db оракла не использую пишу прогу по учёту статистики подключений к инету! И каждой записи надо присваивать номер, подскажите плиз как ето попроще сделать!!!
Sergey13 (2004-07-23 12:36:00) [2]2Курдль © (23.07.04 12:33) [14]
Да кто ж знает то - что ему надо? Нет человека - нет проблемы. 8-)
Курдль (2004-07-23 12:33:00) [3]
> Sergey13 © (23.07.04 12:28) [13]
> Изменяет. 8-) Rownum вычисляется при выборке до сортировки.
А кто сомневался (мы друг друга не поняли). Так ЭТО надо вопрошающему, или НЕ ЭТО?
Sergey13 (2004-07-23 12:28:00) [4]2Fay © (23.07.04 12:26) [12]
Изменяет. 8-) Rownum вычисляется при выборке досортировки.
Fay (2004-07-23 12:26:00) [5]2Sergey13 © (23.07.04 12:21) [11]
Если склероз мне не изменяет, то это далеко не случайность.
Sergey13 (2004-07-23 12:21:00) [6]2Курдль © (23.07.04 12:19) [10]
>порядок строк сохранился
Это тебе просто повезло. Случайность. 8-)
Курдль (2004-07-23 12:19:00) [7]
> Sergey13 © (23.07.04 12:07) [9]
> А если в твоем Оракловом варианте еще Order By добавить?
И чё? Добавил:
select rownum, T.* from TABLE_1 T order by 2
порядок строк сохранился. А этого не надо? И вообще, откуда ты знаешь, что надо, ведь автор sashapont © устранился (надеюсь, пошел читать книжки) :)
Sergey13 (2004-07-23 12:07:00) [8]2Курдль © (23.07.04 11:28) [5]
А если в твоем Оракловом варианте еще Order By добавить?
sniknik (2004-07-23 11:58:00) [9]можно так
SELECT Recno=Identity(int,1,1),* INTO #TABLE_1 FROM TABLE_1
SELECT * FROM #TABLE_1
Курдль (2004-07-23 11:47:00) [10]
> sniknik © (23.07.04 11:38) [6]
> MS SQL такое не примет.
Ну вот :( MS даже прилично стырить Sybase не смогли :(
sniknik (2004-07-23 11:38:00) [11]Курдль © (23.07.04 11:28) [5]
MS SQL такое не примет.
нет пишет он под фоксом...
select recno() from TABLE_1
Курдль (2004-07-23 11:28:00) [12]
> Sergey13 © (23.07.04 08:54) [3]
> Даже новичку желательно указывать тип используемой базы.
Да нормальный новичок! Пишет, естественно, под Оракл:
select rownum from TABLE_1
на крайняк - под Sybase или MS SQL:
select number(*) from TABLE_1
Draught (2004-07-23 09:59:00) [13]добавить автоинкрементное поле в таблицу и будет тебе счастье...
только это поле показывает не действиетльный номер записи в таблице а вообще номер записи за всю жизнь таблицы, даже при удалении 3 записи 4 запись будет всегда с 4-м номером...
В случае, когда можно использовать DataSt.RecNoты можешь сам контролировать номера записей, еще можно использовать DataSet.RecordCount- в этом случае ты будешь знать сколько записей у тебя в таблице и соответственно каждой новой записи присваивать RecordCount+1...
Да и еще, возможно пригодится для экономии места в таблице, можно не добавлять еще одно поле для того, что бы узнать номер записи в таблице, можно просто вызывать DataSet.RecNo- он всегда будет возвращать тебе номер записи, так же можно переходить на определенный номер записи сделав несложные действия DataSet.RecNo:=<какой-нить номер>
Sergey13 (2004-07-23 08:54:00) [14]2sashapont © (23.07.04 05:55) [2]
Даже новичку желательно указывать тип используемой базы.
sashapont (2004-07-23 05:55:00) [15]to ЮЮ Я новичок не совсем понял, можно с примером плиз!
ЮЮ (2004-07-23 05:01:00) [16]записи добавляются в таблицу, по соседству с которой столбик не обнаружен.
Если движок поддерживает DataSet.RecNo можешь рисовать его в гриде, добавив, например, вычислимое поле, и в DataSet.OnCalcFields :
DataSet.Field[].asInteger := DataSet.RecNo;