|
Топик ПапыхДжунства
|
|||
---|---|---|---|
#18+
Джунская задача на Оракле решается вообще без каких либо нюансов на MSSQL подозреваю они есть Глобально это задача о пессимистической или оптимистической блокировке. Есть список договоров. типа таблица. мы открываем один договор в форме на редактирование. и не хотим чтобы в этом время его кто то еще редактировал. поэтому берем ставим блокировку ну там транзакцию открыли. И вроде типа все хорошо. Но нюанс Скуль сервер запретит и чтение этой строки в других транзакциях Что можно сделать можно сделать nolock , можно readpast Но второй исключит строку из выборки. а первый прочитает незафикисированные данные. то есть не те которые были ДО блокировки а те которые вот прям ща. Как с этим чуть чуть побороться - собрать апдейт или инсерт на клиентской части полностью. потом действуем и сразу же закрываем транзакцию. тогда эти миллисекунды расхождения данных при селект нолоке не будут критичны. а тот самый селект нолок будет показывать те данные которые были до блокировки (потому что мы тупо их не меняем) в эту же тему второй вопрос скажем кто то адын открыл договор на редактирование. каким образом запретить сделать это второму? в оракле есть фор апдейт но вэйт а что есть в мсскуле не галочку же ставить ? Кстати а вот совсем Папых вопрос. По какой системной таблице или как вообще в MSSQL узнать заблокирована запись или нет ДО ТОГО как мы подвиснем на блокировке? ТОгда по идее это нормальный флаг что договор редактируется идите отсюда ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2022, 08:11 |
|
Топик ПапыхДжунства
|
|||
---|---|---|---|
#18+
if exists(select 0 from table (nolock) where id_str = @id_str) ... ... |
|||
:
Изменено: 26.10.2022, 08:31 - Умник^практик
Нравится:
Не нравится:
|
|||
26.10.2022, 08:29 |
|
Топик ПапыхДжунства
|
|||
---|---|---|---|
#18+
if exists(select 0 from table (nolock) where id_str = @id_str) ... ... |
|||
:
Изменено: 26.10.2022, 08:37 - Doublekey
Нравится:
Не нравится:
|
|||
26.10.2022, 08:36 |
|
Топик ПапыхДжунства
#196279
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Код: SQL 1. 2.
В принципе канэшно можно вопрос считать решенным но все равно варианты интересны ... |
||||||||||||||||
:
Изменено: 26.10.2022, 08:45 - Doublekey
Нравится:
Не нравится:
|
||||||||||||||||
26.10.2022, 08:42 |
|
Топик ПапыхДжунства
|
|||
---|---|---|---|
#18+
собрать апдейт или инсерт на клиентской части полностью. потом действуем и сразу же закрываем транзакцию. тогда эти миллисекунды расхождения данных при селект нолоке не будут критичны. Кстати, до сих пор не могу привыкнуть к окнам настроек, в которых нет ok и cancel. Пиздец как бесит. Лишает возможности откатиться на шаг назад в случае ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2022, 09:30 |
|
|
start [/forum/topic.php?fid=32&gotonew=1&tid=5515]: |
0ms |
get settings: |
26ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
418ms |
get tp. blocked users: |
2ms |
others: | 31ms |
total: | 556ms |
0 / 0 |