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

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

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

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


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