|
|
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
Почему не устанавливается блокировка при следующем коде? Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 11:55 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
Наводящие вопросы 1. Где находится указатель записи перед ф-ией RLOCK 2. Как проверяется наличие блокировки 3. Что возвращает RLOCK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:02 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
1ndig0Почему не устанавливается блокировка при следующем коде? Код: plaintext 1. 2. 3. 4. 5. Потому что после выхода из Scan FOR указатель записи стоит за последней строкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:07 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
Все оказалось верно. Спасибо, уже исправил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 17:12 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
По поводу блокировки. В этом не могу оразобраться. Как правильно делать блокировку таблицы когда к ней обращаються несколько пользователей для записи данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 18:09 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
Hi Недоходящий! Правильно - НИКАК не делать НИКАКИХ блокировок. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2006, 04:43 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
2 Igor Korolyov А как тогда защитить DBF от одновременной записи одинаковых значений от разных пользователей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 12:57 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
НедоходящийА как тогда защитить DBF от одновременной записи одинаковых значений от разных пользователей ? Специально ничего защищать не надо. Одновременная запись в одно и то же место двух разных пользователей физически невозможна. За этим следит сама операционная система. Т.е., хотя со стороны кажется, что два пользователя одновременно записали данные в одно и то же место, но реально они записали эти данные по очереди. Сначала один, потом другой. У программиста другая задача: разрешение конфликтов совместного доступа. Т.е. программист должен каким-то образом отследить тот факт, что два разных пользователя собираются редактировать одни и те же данные. Тут возможны 2 принципиальных подхода: 1) Как только первый пользователь начал вносить изменения, на соответствующие данные устанавливается блокировка и никакой другой пользователь уже не в состоянии редактировать те же самые данные, пока первый пользователь не завершит редактирование. Пусть даже он ушел на обед и не вернулся... Это схема пессимистической буферизации. 2) Пользователь редактирует не сами исходные данные, а некую их копию. Запись (и блокировка) происходят только в момент сброса изменений в исходную таблицу. Перед сбросом анализируется тот факт, что за то время, пока происходило редактирование другой пользователь не внес свои изменения. Это схема оптимистической буферизации. При этом, если работа происходит именно в режиме буферизации, а не через "ручное" накладывание и снятие блокировок (RLOCK()/UNLOCK), то все установки и снятие блоикровок будут происходить автоматически. Специально следить за блокировками не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 14:14 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ Спасибо. Буду разбираться с этими способами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 16:55 |
|
||
|
SCAN и RLOCK
|
|||
|---|---|---|---|
|
#18+
Hi Недоходящий! Оставить управление блокировками фоксу :) Он прекрасно сам справится - ты просто используй нормальные схемы - в частности короткие транзакции (не схему с BEGIN TRANSACTION ... MESSAGEBOX() ... END TRANSACTION). Есть правда ряд задач, когда блокировки лучше самому накладывать (в частности для предотвращения тупиков в случае наличия транзакций затрагивающих большое количество таблиц) - но это очень специфичные задачи, и вряд ли когда ты с ними столкнёшься. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 01:31 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33552967&tid=1592263]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 484ms |

| 0 / 0 |
