Здравствуйте, dave_2, Вы писали:
_>Допустим в sqlite были бы пессимистические блокировки на уровне рядов таблицы. _>Понятно как это поможет в сценарии взяли объект, поменяли и возвращаем на то место откуда взяли. _>Но как они помогут в согласованности данных в разных окнах?
Тут они действительно мало помогут. Блокировки на уровне БД нужны тогда, когда с базой независимо работают несколько пользователей. Я, когда отвечал выше, имел в виду именно такой сценарий. А синхронизация данных внутри одного экземпляра приложения, до того, как эти данные записаны в базу, — это забота разработчика приложения, то есть твоя.
_>Допустим есть окно со списком объектов, двойным кликом открывается окно просмотра _>объекта, в котором есть кнопки "Удалить" и "Редактировать". _>При нажатии "Редактировать" или "Удалить" логично взять блокировку, _>но как другие "окна" которые работают с базой только на чтение получат _>информацию о том что что-то поменялось и надо вытащить данные заново?
Например, окна могут слать друг другу уведомления. Ну или главному окну, которое будет пересылать их всем остальным.
Кстати, блокировки бывают и на чтение тоже, так что можно использовать и их, если это не будет мешать другим пользователям.