powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Блокировка строки
12 сообщений из 12, страница 1 из 1
Блокировка строки
    #32192581
Хочу знать
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. Можно ли в Oracle заблокировать для редактирования какую нибудь строку в таблице. Это нужно для того, чтобы если один юзер работает с этой строчкой другие с ней не работали.
...
Рейтинг: 0 / 0
Блокировка строки
    #32192608
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select ... for update ...
...
Рейтинг: 0 / 0
Блокировка строки
    #32192649
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если еще хочется чтобы другие юзеры не ждали пока снимится блокировка с этой строки а сразу получали отлуп если она заблокирована, то эти юзеры должны вызывать

select ... for update ... nowait;
...
Рейтинг: 0 / 0
Блокировка строки
    #32192725
ЖУК1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"А если еще хочется чтобы другие юзеры не ждали пока снимится блокировка с этой строки а сразу получали отлуп если она заблокирована, то эти юзеры должны вызывать

select ... for update ... nowait;"

а зачем select for update.

обновлять то не всегда надо. если это просто просмотровая форма.
...
Рейтинг: 0 / 0
Блокировка строки
    #32192743
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновлять то не всегда надо. если это просто просмотровая форма.

Это уже зависит от логики приложения. Если просто просмотровая форма, то конечно не надо, вообще тогда блокировки пофигу. Однако если все же данные меняются, то может быть не очень приятно - ввел новые данные нажал submit и приложение подвисло в ожидании снятия блокировки. А потом еще и отлуп получить можно.

select ... for update ... nowait

можно делать не сразу при выборке а непосредственно перед выполнением DML операторов.
...
Рейтинг: 0 / 0
Блокировка строки
    #32192875
Жучило
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"можно делать не сразу при выборке а непосредственно перед выполнением DML операторов."

а как этотот момен непосредственно перед выполнением DML операртора определить?
...
Рейтинг: 0 / 0
Блокировка строки
    #32192888
Хотящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большой спасиб
...
Рейтинг: 0 / 0
Блокировка строки
    #32192926
Жучило
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и как ты делать будешь ?
...
Рейтинг: 0 / 0
Блокировка строки
    #32193294
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Легко, например если в форме (Delphi) клиент уже изменил некое поле, но еще не нажал кнопку Apply, он явно хочет изменить запись. Делаем select for update nowait. Если возвращает ошибку, не судьба ему редактировать, вернуть прежнее значение в отредактированное поле и обругать его нехорошим словом. Уверен, что в Forms-ах можно сделать, что-то анологичное, сам с ними не работаю.
...
Рейтинг: 0 / 0
Блокировка строки
    #32193366
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и как ты делать будешь ?

Там где в приложении посылается DML запрос, непосредственно перед ним и выполнять а потом проверять на успешность, если все плохо сообщать пользователю что он изменить запись не сможет, всяко лучше чем висящее ожидание с последующим отлупом.

Здесь вопрос скорее когда блокировать. Я делаю обычно так.

Выбираю набор записей без блоикирования for update для просмотра. В маске у меня есть кнопка редактировать, выбрав некоторые записи и нажав ее - уже пытаюсь блокировать данные записи for update nowait. При этом сразу выясняется сможет ли пользователь изменить эти записи или нет и гарантируется что другой этого сделать не сможет. Это и экономит усилия пользователя - не совсем приятно вносить изменения а потом получать отлуп.
...
Рейтинг: 0 / 0
Блокировка строки
    #32193371
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ещё недокументированная фича select ... for update... skip locked
...
Рейтинг: 0 / 0
Блокировка строки
    #32193500
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо конечно, но чем оно помогает в данном контексте ?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Блокировка строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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