|
|
|
Как проверить изменилось ли поле в датасете?
|
|||
|---|---|---|---|
|
#18+
Пишу в C++ Builder 6.0. Использую TADODataSet (LockType==ltBatchOptimistic). Бегу по датасету смотрю свойство RecordStatus. Если (DataSet->RecordStatus.Contains(rsModified)), то мне нужно пробежаться по всем полям DataSet'а и определить какие из них были изменены в процессе редактирования. К сожалению вот так проверять не получается: Код: plaintext Понятно, что можно добавить дополнительные условия проверки на NULL, но мне кажется должно быть какое-то средство для определения изменилось ли значения поля... Может кто-нибудь в курсе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 09:21 |
|
||
|
Как проверить изменилось ли поле в датасете?
|
|||
|---|---|---|---|
|
#18+
Сомневаюсь, что такое есть - слишком накладно для каждой записи хранить доп.флаг изменения. Обычно это проблемы клиента. Или есть спец-компоненты на основе DataSet. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 09:55 |
|
||
|
Как проверить изменилось ли поле в датасете?
|
|||
|---|---|---|---|
|
#18+
я про свойство датасета и спрашиваю... или TField'а..... естественно информация на клиенте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 10:01 |
|
||
|
Как проверить изменилось ли поле в датасете?
|
|||
|---|---|---|---|
|
#18+
Philinя про свойство датасета и спрашиваю... или TField'а..... естественно информация на клиенте... А я про него и говорю. Не знаю как в вашем компиляторе - в Delphi есть компонент "Пакетных отложенных изменений". Помнит какие записи изменялись и автоматом кидает на сервер тока изменённые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 10:34 |
|
||
|
Как проверить изменилось ли поле в датасете?
|
|||
|---|---|---|---|
|
#18+
Помнит какие записи изменялись Как найти измененные записи я знаю.... см. выше. я не могу определить изменилось ли поле . и автоматом кидает на сервер тока изменённые. автоматом класть измененные записи мне не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 10:50 |
|
||
|
Как проверить изменилось ли поле в датасете?
|
|||
|---|---|---|---|
|
#18+
PhilinК сожалению вот так проверять не получается: Код: plaintext А ты попробуй сравнивать значения ->AsString... (если сохранность NULL не нужна) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 06:13 |
|
||
|
Как проверить изменилось ли поле в датасете?
|
|||
|---|---|---|---|
|
#18+
автор Лично я CachedUpdates не пользуюсь... У меня для каждого датасета есть свой TStringList в который я на BeforeEdit загоняю перечень всех критичных полей и их значения типа: MyField=ValueAsString... а после поста, если они изменились, для зависимых таблиц делаю: if (MyTable->State == dsBrowse) MyTable->Refresh(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 06:46 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32962231&tid=2033607]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 383ms |

| 0 / 0 |
