|
|
|
Эксклюзивный доступ к записи.
|
|||
|---|---|---|---|
|
#18+
Всем привет. Не совсем уверен (совсем неуверен), что делаю правильно, подскажите, пожалуйста. Нужен длительный эксклюзивный доступ конкретного клиента к записи. В том числе, даже если был перезапуск сервера. В голову приходит добавить к записи пару атрибутов "Занята"(Locked) и "Кто обрабатывает"(идентификатор клиента, "занявшего" запись). Вопрос: как выполнить блокировку правильно, чтобы уверенно знать, что это именно я заблокировал запись? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Если получаю дедлок по первой операции, или 0 по второй, то считаю, что блокировка не удалась, а если дедлока нет, и вторая возвращает >0, то все ОК, это моя запись. Этого достаточно? Спасибо. (Сервер - FireBird 1.53) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 12:01 |
|
||
|
Эксклюзивный доступ к записи.
|
|||
|---|---|---|---|
|
#18+
Зачем делать что-либо на одну таблицу,если можно сделать один раз и навсегда. Делаем таблицу логических блокировок с нужными полями и с обязательным полем Наименование таблицы, Наименование поля/полей PK и Значение/Значения PK. А по сути - так. Плюс поиск по слову "Блокировка" и Логическая блокировка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33573364&tid=1545393]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
409ms |
get topic data: |
6ms |
get forum data: |
5ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 700ms |

| 0 / 0 |
