|
|
|
Как обновлять DW основаные на связаных таблицах?
|
|||
|---|---|---|---|
|
#18+
Такой вот странный вопрос. Есть несколько таблиц, все завязаны друг на друга через foreign key ... on update cascade on delete cascade. Делаю несколько DW на каждую из таблиц. Пользователь меняет ключевое поле в главной таблице. А вот дальше непонятности начинаются. Делаю ручное исправление аналогичного поля во всех DW отвечающих за ведомые таблицы. dw_master.Update() проходит нормально, но при dw_slaveX.Update() получаю ошибку "данные в ключевом поле изменились между ретривом и апдейтом". Что я делаю не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 18:33 |
|
||
|
Как обновлять DW основаные на связаных таблицах?
|
|||
|---|---|---|---|
|
#18+
Такое случалось, если в update properties DW выбирались Key $ updateable columns или updateable columns. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 18:45 |
|
||
|
Как обновлять DW основаные на связаных таблицах?
|
|||
|---|---|---|---|
|
#18+
Ну если в update properties DW выбрать что-то другое, то можно вообще получить мусор. Вообще-то вопрос уже решен, ключевому поле в ведомых DW сразу после ручного изменения был сделан dw_slaveX.SetItemStatus(iRow, iPkCol, Primary!, NotModified!) и все заработало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 18:50 |
|
||
|
Как обновлять DW основаные на связаных таблицах?
|
|||
|---|---|---|---|
|
#18+
White OwlНу если в update properties DW выбрать что-то другое, то можно вообще получить мусор. Вообще-то вопрос уже решен, ключевому поле в ведомых DW сразу после ручного изменения был сделан dw_slaveX.SetItemStatus(iRow, iPkCol, Primary!, NotModified!) и все заработало... Я к тому, что опцию Key columns юзать предпочтительно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 19:13 |
|
||
|
Как обновлять DW основаные на связаных таблицах?
|
|||
|---|---|---|---|
|
#18+
авторПользователь меняет ключевое поле пожалуйста, не ешьте на ночь сырых помидоров (О.Бендер) и не позволяйте пользователю менять ключевое поле. Успехов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 19:36 |
|
||
|
Как обновлять DW основаные на связаных таблицах?
|
|||
|---|---|---|---|
|
#18+
Alexander KolotinetsЯ к тому, что опцию Key columns юзать предпочтительно Отнюдь. Есть стратегия оптимистическая, когда пишем только если запись НЕ изменена другим пользователем. Есть стратегия пессимисическая - т.е. зачитываем сразу с блокировкой. А писать свои изменения поверх чужих без блокировок и не глядя - это уже не стратегия, а бардак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 19:55 |
|
||
|
Как обновлять DW основаные на связаных таблицах?
|
|||
|---|---|---|---|
|
#18+
Кста - при использовании суррогатных ключей для связи таблиц необходимости в каскадном обновлении (и вытекающих из этого проблем) не возникает. Структуру базы сами сочиняли или в наследство досталась? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 19:58 |
|
||
|
|

start [/forum/topic.php?fid=15&tid=1338859]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 464ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...