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

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

Как присвоить значения полю в Таблице ? [D7]


Страницы:   1 2

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 это номер записи!

Это я прочитал!

Я спрашиваю для чего ты его используешь в программе?


Страницы:   1 2

Наверх

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