|
Используйте SELECT
|
|||
---|---|---|---|
#18+
В команде SELECT предусмотрены специальные опции для явного указания способа блокировки. Например, UPDLOCK. Нужно послать отобрать SELECT-ом эту запись по уникальному идентификатору (т.е. по значению(ям) первичного ключа) с указанием способа блокирования. Тогда до окончания транзакции запись будет заблокирована указанным способом. Соответственно, когда кто-то другой обращается к этой записи, он будет ждать пока запись не разблокируется. С помощью команды SET LOCK_TIMEOUT можно задать время, в течение которого другой клиент ждёт освобождения записи. Как только время истечёт, клиент получит сообщение об ошибке. Короче, почитайте документацию про это и поэкспериментируйте с помощью SQL-запросов и Query Analazer-а. И сразу станет понятно, как и что блокировать. А поля всякие городить для отслеживания блокировок нужно было в SQL Server 6.5 и более ранних, т.к. там не было команды SET LOCK_TIMEOUT и не было блокировки на уровне записи и приходилось изощраться (на себе испытал). А в 7.0 без этого можно обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2001, 14:33 |
|
|
start [/forum/topic.php?fid=46&msg=32001780&tid=1827430]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 402ms |
0 / 0 |