Приложение MFC с SQL Server - блокировка строк / таблицы

Я хочу, чтобы мое приложение C ++ (написанное на MFC + SQL Server) действовало следующим образом:

Откройте интерфейс. Он прочитает некоторые данные из таблицы и заблокирует все прочитанные строки, так что никто другой не сможет изменить эти строки, но может их прочитать. Строки из вышеприведенного абзаца доступны для работы в интерфейсе в течение более длительного периода времени, оставаясь заблокированными для других, пока интерфейс не будет закрыт. Через некоторое время (и несколько изменений) я хочу написать изменения. Вся таблица должна иметь исключительную блокировку до завершения операции. Во время этой операции даже чтение из этой таблицы другими должно быть невозможным (исключительная блокировка). Когда изменения записываются, таблица должна быть разблокирована (удалить исключительную блокировку), но строки, упомянутые в параграфе 1, все равно должны оставаться заблокированными, потому что я хочу продолжить работу над ними. В конце закройте интерфейс (отпустите блокировки строк).

Проблема в том, что описанный выше сценарий будет работать только в транзакции, начатой ​​в начале. Блокировка таблицы (TABLOCKX) будет удерживаться до тех пор, пока эта транзакция не будет выполнена или откатна, что не то, что я хочу.

Любая идея, как достичь этой цели?

0
задан 13 August 2018 в 14:50

0 ответов

Другие вопросы по тегам:

Похожие вопросы: