Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как обновлять DW основаные на связаных таблицах? / 7 сообщений из 7, страница 1 из 1
22.09.2004, 18:33
    #32707386
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновлять DW основаные на связаных таблицах?
Такой вот странный вопрос. Есть несколько таблиц, все завязаны друг на друга через foreign key ... on update cascade on delete cascade. Делаю несколько DW на каждую из таблиц. Пользователь меняет ключевое поле в главной таблице. А вот дальше непонятности начинаются.
Делаю ручное исправление аналогичного поля во всех DW отвечающих за ведомые таблицы. dw_master.Update() проходит нормально, но при dw_slaveX.Update() получаю ошибку "данные в ключевом поле изменились между ретривом и апдейтом".
Что я делаю не правильно?
...
Рейтинг: 0 / 0
22.09.2004, 18:45
    #32707415
Alexander Kolotinets
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновлять DW основаные на связаных таблицах?
Такое случалось, если в update properties DW выбирались Key $ updateable columns или updateable columns.
...
Рейтинг: 0 / 0
22.09.2004, 18:50
    #32707427
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновлять DW основаные на связаных таблицах?
Ну если в update properties DW выбрать что-то другое, то можно вообще получить мусор.
Вообще-то вопрос уже решен, ключевому поле в ведомых DW сразу после ручного изменения был сделан dw_slaveX.SetItemStatus(iRow, iPkCol, Primary!, NotModified!) и все заработало...
...
Рейтинг: 0 / 0
22.09.2004, 19:13
    #32707461
Alexander Kolotinets
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновлять DW основаные на связаных таблицах?
White OwlНу если в update properties DW выбрать что-то другое, то можно вообще получить мусор.
Вообще-то вопрос уже решен, ключевому поле в ведомых DW сразу после ручного изменения был сделан dw_slaveX.SetItemStatus(iRow, iPkCol, Primary!, NotModified!) и все заработало...

Я к тому, что опцию Key columns юзать предпочтительно
...
Рейтинг: 0 / 0
22.09.2004, 19:36
    #32707497
rcryo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновлять DW основаные на связаных таблицах?
авторПользователь меняет ключевое поле
пожалуйста, не ешьте на ночь сырых помидоров (О.Бендер) и не позволяйте пользователю менять ключевое поле.

Успехов!
...
Рейтинг: 0 / 0
22.09.2004, 19:55
    #32707522
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновлять DW основаные на связаных таблицах?
Alexander KolotinetsЯ к тому, что опцию Key columns юзать предпочтительно

Отнюдь.
Есть стратегия оптимистическая, когда пишем только если запись НЕ изменена другим пользователем.
Есть стратегия пессимисическая - т.е. зачитываем сразу с блокировкой.
А писать свои изменения поверх чужих без блокировок и не глядя - это уже не стратегия, а бардак.
...
Рейтинг: 0 / 0
22.09.2004, 19:58
    #32707530
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновлять DW основаные на связаных таблицах?
Кста - при использовании суррогатных ключей для связи таблиц необходимости в каскадном обновлении (и вытекающих из этого проблем) не возникает.
Структуру базы сами сочиняли или в наследство досталась? ;-)
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как обновлять DW основаные на связаных таблицах? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]