
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.09.2002, 15:55:16
|
|||
|---|---|---|---|
Блокировка строк |
|||
|
#18+
Задача - надо заблокировать строку для апдейта - Два пользователя могут изменить строрку - надо кто первый "прорвался" к строке того изменения и сохранить.сиквел 2000 После перерыва вернулся к работе к сиквелом и многое позабылось - помню надо копать в хитах... Но очь мало времени.Надо как всегда "вчера" :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2002, 16:25:48
|
|||
|---|---|---|---|
|
|||
Блокировка строк |
|||
|
#18+
select * from table with(rowlock,updlock) where... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2002, 16:34:35
|
|||
|---|---|---|---|
Блокировка строк |
|||
|
#18+
ИМХО если нужно заблокировать строку для апдейта, то ничего не нужно предпринимать, а просто выдать команду UPDATE ... При этом сервер сам определит, кто первый обратился и заблокирует строку, а второй UPDATE поставит в очередь до истечения таймаута. Однако, при таком подходе сработает и второй UPDATE (стоящий в очереди), если только не изменились поля, участвующие в WHERE. ЗЫ Поправьте, если не прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2002, 17:08:47
|
|||
|---|---|---|---|
Блокировка строк |
|||
|
#18+
Классическое решение подобной задачи - использование вспомогательного поля типа Timestamp. Два юзера "видят" в рекордсете одну и ту же запись. Оба выдают update ... where TimestampField= - и то, чему он равен в своем рекордсете. У первого комада отрабатывает нормально, при этом значение поля Timestamp изменяется. Второй тоже пытается модифицировать эту запись, но количество модифицированных им записей окажется равным нулю, потому что указанный во фразе where временной штамп больше не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1820286]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 336ms |

| 0 / 0 |
