![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ручная установка флага состояния записи в ClientDataSet [D7, FB1.52]
Вольный Стрелок © (2005-05-13 17:59:00)Проблема такая. Например, в CDS есть 1 запись. Я добавляю еще одну. А потом меняю их содержимое местами. Рассуждая логически, новые данные содержатся в первой записи, а старые во второй. Но в CDS сохряняется признак, что первая запись - редактированная, а вторая - новая, хотя с точки зрения данных как раз наоборот.
Вопрос: как вместе с обменом содержимым записей обменять и их "состояния"?
ЮЮ (2005-05-17 03:03:00) [1]>что я и делаю swap'ом содержимого записей.
swap-ить только поле "номер" и переупорядочмвать
>Ведь при добавлении строки в набор я еще не знаю, каким номером она пойдет
Тогда логичнее не Append-ить запись, а Insert-ить вслед за текущей, устанавлиывя "номер" на 1 больше, чем в текущей и увеличивая у последующих
Вольный Стрелок (2005-05-16 13:17:00) [2]О физическом порядке я тоже не говорил. Я говорил о порядке, который пользователь хочет получить при отображении. Я это и реализовал специальным полем номера. Но как сделать так, чтобы при изменении порядка (я записи в этом поле перенумеровываю) все-таки сабж устанавливать? Или это можно по-другому сделать?
Ведь при добавлении строки в набор я еще не знаю, каким номером она пойдет. И пользователь не хочет вводить номера для отображения - ему проще их визуально расставить, что я и делаю swap'ом содержимого записей.
Anatoly Podgoretsky (2005-05-16 12:04:00) [3]Говорить о физическом порядке неприлично.
Нужен порядок значить нужно поле Порядок.
Остальное ламерское.
Вольный Стрелок (2005-05-16 11:58:00) [4]Прав-то он прав, но нужно именно так, как я написал. И не надо говорить, что это нелепо. Все зависит от задачи.
В моей задаче пользователь может добавить записи в набор, а потом переставить их ПО СВОЕМУ УСМОТРЕНИЮ, т.к. ему важен их порядок. Как в таком случае организовать сортировку, если не ясно, по какому принципу пользователь их расставляет?
О detail-таблицах речи не идет.
ЮЮ (2005-05-16 03:23:00) [5]>Но в CDS сохряняется признак, что первая запись - редактированная, а вторая - новая, хотя с точки зрения данных как раз наоборот
С точки зрения записей - CDS прав, а рассматривать с точки зрения данных - нелепо, как и нелепо таким образом "переставлять" строки. Для упорядочмвания записей используеися сортировка, а не полное искажение данных. А если у таблицы будет detail-таблица, то такие "махинации" вообще не прокатят
Вольный Стрелок (2005-05-15 17:57:00) [6]up
Вольный Стрелок (2005-05-13 22:10:00) [7]Считываю в буфер 1 и 2, затем записываю в наоборот.
-=XP=- (2005-05-13 18:02:00) [8]А потом меняю их содержимое местами
Каким образом?