|
|
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
Всем привет! Есть таблица общего доступа. Все пишут, читают, помечают на удаление, добавляют... Вопрос, собственно, наверно, странный - а нужно ли использование таких команд, как FLOCK и RLOCK? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2007, 10:01 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
СМОТРЯ КАКИЕ ПРИЕМЫ ИСПОЛЬЗОВАТЬ. Если использоватьть буферизации, то эти вещи необязательны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2007, 18:21 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
ValeriiСМОТРЯ КАКИЕ ПРИЕМЫ ИСПОЛЬЗОВАТЬ. Если использоватьть буферизации, то эти вещи необязательны... А без буферизации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2007, 18:54 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вопрос зависит не всегда от выбора приема , но и от логики программы. Например у Вас две таблицы - таблица заголовков (каких-то сущностей например заявок на комплектующие) и таблица состава Естественно что пока один пользователь корректирует состав он, до конца корректировки, неактуален для других пользователей для внесения ими своих корректировок (но может быть просмотрено предыдущее состояние) Тогда можно воспользоваться функцией rlock() для временного блокирования в первой таблице заголовочной записи заявки. Другие пользователи при попытке входа на просмотр загрузят состав из второй таблицы на просмотр,а при попытке входа на корректировку получат сообщение что ресурс занят другим пользователем. В Вашем случае - таблицы куда все пишут корректируют и удаляют можно пользоваться как функцией rlock() для записи которую пользователь намерен обновить(удалить) так и оптимистической буферизацией строк (смотри варианты в HELP). В последнем случае для фиксации результатов надо использовать функцию tableupdate() а при неуспешном обновлении функцию tablerevert() Функцию flock() - блокировки таблицы желательно не применять (вернее строить логику обработки данных так чтобы ее не применять!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 12:10 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
Ясненько, спасибо. А flock() ведь приходится применять при добавлении записи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 12:27 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
А зачем так сурово поступать? ________ Не дадим распространиться заразе политкорректности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 12:30 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
UrriА зачем так сурово поступать? ________ Не дадим распространиться заразе политкорректности! А разве append blank не требует блокировки таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 12:33 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
StandD А разве append blank не требует блокировки таблицы? Просто многие вещи FoxPro блокирует автоматом на минимально короткое время. Могу дать совет - используйте 99% того, что FoxPro предлагает с блокировками самостоятельно. Все это подробно описано в Help про многопользовательскую работу/концепцию... Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 12:37 |
|
||
|
flock() rlock
|
|||
|---|---|---|---|
|
#18+
Кстати в многопользовательской среде и append blank желательно не применять. пользуйтесь insert into алиас таблицы (поля) values (значения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 12:46 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34570544&tid=1589219]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 547ms |

| 0 / 0 |
