![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как присвоить значения полю в Таблице ? [D7]
Golik © (2006-05-01 11:41:00)Как присвоить значения полю в Таблице ?
есть таблица Access, в которой есть поле (Nom)-номер , этот номер соответствует записи в таблице.
как пронумировать все записи по этому полю ?например от 1 до 100?
DiamondShark (2006-05-02 14:30:00) [1]
> так понятно?
Нет, не понятно.
Если это поле нужно для идентификации записи (первичный ключ), то совершенно по-барабану, какие у него будут числовые значения. И autoincrement для этого специально придумали.
Если же это поле нужно только для красивости отображения, то совершенно незачем его хранить (и постоянно изменять!). А если записей сто тысяч? На каждый чих их все изменять?
Для красивости надо сделать calculated поле и возвращать в нём RecNo.
Так понятно?
Sergey13 (2006-05-02 14:18:00) [2]2[22] Golik (02.05.06 14:06)
>так понятно?
Непонятно, зачем хранить порядковый номер? А если ты будешь показывать ТОЛЬКО февральские записи - опять перенумеровывать? За все годы?
Golik (2006-05-02 14:06:00) [3]еще раз обьясняю
поле Nom-числовое,
Дата-Дата
Текст-Текст.
добаляю запись 01.01.01
еще добавляю 02.02.02
потом вспоминаю что пропустил запись с датой 01.02.01
вставляю,но номер то у неё не 2 а 3. правильно?
нажимаю кнопочку и вся нумерация исправилась-
1-01.01.01
2-01.02.01
3-02.02.02
так понятно?
DiamondShark (2006-05-02 13:54:00) [4]
> а дальше ? не пойму как .
Например, так:
Table1.First;
while not Table1.EOF do
begin
Table1.Edit;
Table1.FieldByName('Nom').Value := Table1.RecNo;
Table1.Post;
Table1.Next
end;
Только это бред.
Если при добавлении строк в таблицу приходится лопатить все записи, значит задача поставлена (или понята ;) ) крайне коряво.
Выкладывай исходную задачу. Никому в здравом уме поля с таким поведением не нужны.
Golik (2006-05-02 13:52:00) [5]нет не наработе.
но номера документов так и меняются если забыл и вставил.
Sergey13 (2006-05-02 13:50:00) [6]2[18] Golik (02.05.06 13:48)
Лаба? Только не говори мне что это на работе дали написать задачу, в которой номера документов меняются случайным образом, в зависимости от того, что ты вспомнил о пропущеной записи.
Golik (2006-05-02 13:48:00) [7]да нет.
Sergey13 (2006-05-02 13:47:00) [8]2[16] Golik (02.05.06 13:44)
Это курсовая?
Golik (2006-05-02 13:44:00) [9]таблица содержит записи, которые должны распологатся в хронологическом порядке по Дате.
и если я пропустил какую-либо запись ,то мне надо ее вставить ,соответственно потом номера документов поменять.
а вот как незнаю. делаю
for i:=1 to Recordcount do begin
а дальше ? не пойму как .
DiamondShark (2006-05-02 13:40:00) [10]Странные очень желания.
В чём глобальный общечеловеческий смысл наличия такого хитровыкрученного поля в таблице?
Golik (2006-05-02 13:07:00) [11]вот в том то и дело что не впихнеш если приспичит !
Галинка (2006-05-01 23:52:00) [12]А есои это поле просто автоикрементом сделать? Можно ли будет туда вообще что-то впихнуть?
Virgo_Style (2006-05-01 16:25:00) [13]Next
Edit
Post
Golik (2006-05-01 16:12:00) [14]не совсем понял как пробежать по датасету и присвоить те значения которые надо ?
Virgo_Style (2006-05-01 13:41:00) [15]Ну тогда открой с нужной сортировкой, пробеги по датасету и установи везде нужные значения.
alex-drob (2006-05-01 13:39:00) [16]неуверен но можно попробывать после добавления записи
update таблица
set Num=Num+1
where num>номер добавленой записи
Golik (2006-05-01 13:34:00) [17]у меня сортировка по полю Дата Стоит.
так что если я добавил запись между 05.05.05. и 05.06.05,то новой записе присвоится в поле Nom значение 3. а мен надо чтоб было 2. соответственно
у след.Даты 05.06.05 поле Nom должно ровняться 3.
Virgo_Style (2006-05-01 13:30:00) [18]Order by, и все будет по порядку
Golik (2006-05-01 13:27:00) [19]мне надо чтоб каждая запись нумеровалась.
задание такое.
alex-drob (2006-05-01 13:24:00) [20]
> Golik (01.05.06 13:20) [4]
> Num это номер записи!
Это я прочитал!
Я спрашиваю для чего ты его используешь в программе?