Блокировка записей!!!
Добавлено: 28 фев 2007, 09:41
В своей программе я использовал блокировку записей! Например при открытии карточек, чтобы другой пользователь получил сообщение открывая ту карточку, которая уже открыта. Реализовал это посредством холостого апдейта первичного ключа.
таблица CLIENTS первичный ключ - ROW_ID
при открытии какой либо записи в отдельном окошке
update CLIENTS set ROW_ID = ROW_ID where ROW_ID = ?OLD_ROW_ID
Транзакция этого окошка завершится когда оно закроется - тогда другие пользователи смогут открывать эту запись!.
Этот принцип долгое время меня устраивал, но теперь столкнулся с проблемой. Если я хочу вставить в таблицу в которой имеется вторичный ключ на таблицу CLIENTS запись, которая сейчас открыта (произведен этот самый холостой апдейт) - то DEADLOCK.
Отказываться от вторичных ключей не хочется! Есть ли способ обхода этой особенности IB или мне необходимо поменять механизм блокировок записей???
таблица CLIENTS первичный ключ - ROW_ID
при открытии какой либо записи в отдельном окошке
update CLIENTS set ROW_ID = ROW_ID where ROW_ID = ?OLD_ROW_ID
Транзакция этого окошка завершится когда оно закроется - тогда другие пользователи смогут открывать эту запись!.
Этот принцип долгое время меня устраивал, но теперь столкнулся с проблемой. Если я хочу вставить в таблицу в которой имеется вторичный ключ на таблицу CLIENTS запись, которая сейчас открыта (произведен этот самый холостой апдейт) - то DEADLOCK.
Отказываться от вторичных ключей не хочется! Есть ли способ обхода этой особенности IB или мне необходимо поменять механизм блокировок записей???