|
|
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
Люди, совсем затупил! Как проверить, заблокирована ли запись? Проблема в том, что если использовать LOCK-RLOCK, то ФОКС пытается заблокировать строку и выдать результат блокировки. Но если запись уже заблокирована - комп подвисает и внизу маленькими строчками "запись заблокирована, нажмите ESC". Но это все не очень заметно для пользователя и довольно долго комп выходит из этой ситуации. Есть ли возможность проверить блокировку строки БЕЗ попытки ее заблокировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 17:04 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
#IsRlocked() Не работает! kkk=0 if IsRlocked()=.t. kkk=1 ENDIF IF kkk=1 DO FORM blockzap else replace fio WITH fifi endif Так вот, программ переходит на replace fio WITH fifi ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 17:32 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
авторНо если запись уже заблокирована - комп подвисает и внизу маленькими строчками "запись заблокирована, нажмите ESC" SET REPROCESS TO 1 IsRlocked() проверяет не проверяет что запись заблокировано другим приложение - ISRLOCKED( ) returns a logical true (.T.) if the record is locked by the current application; otherwise a logical false (.F.) is returned. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 17:34 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
Burn авторНо если запись уже заблокирована - комп подвисает и внизу маленькими строчками "запись заблокирована, нажмите ESC" SET REPROCESS TO 1 IsRlocked() проверяет не проверяет что запись заблокировано другим приложение - ISRLOCKED( ) returns a logical true (.T.) if the record is locked by the current application; otherwise a logical false (.F.) is returned. Не помогло! Регулярно постоянное сообщение о блокировке и не дает закрыть текущую форму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 17:38 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
StandDЕсть ли возможность проверить блокировку строки БЕЗ попытки ее заблокировать? Нет. Средствами FoxPro по другому невозможно. Это FPD 2.6 ? В Visual FoxPro такая технология работы вызывает недоумение. Используйте буферизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 18:35 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
ВладимирМ StandDЕсть ли возможность проверить блокировку строки БЕЗ попытки ее заблокировать? Нет. Средствами FoxPro по другому невозможно. Это FPD 2.6 ? В Visual FoxPro такая технология работы вызывает недоумение. Используйте буферизацию. VFP 9.0. А по поводу буферизации применительно к этой проблеме поподробнее можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 20:32 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
StandDVFP 9.0. А по поводу буферизации применительно к этой проблеме поподробнее можно? Можно. Но для начала объясните почему такая проблема возникла вообще? Зачем Вам надо знать заблокирована запись другим пользователем или нет? Какую задачу Вы пытаетесь решить таким способом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 20:44 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
Попробуйте следующее: Одна попытка блокировки. SET REPROCESS TO 1 Максимальное время попытки 1 сек. SET REPROCESS TO 1 SECONDS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 00:46 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
burgosПопробуйте следующее: Одна попытка блокировки. SET REPROCESS TO 1 Максимальное время попытки 1 сек. SET REPROCESS TO 1 SECONDS Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 09:12 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
ВладимирМ StandDVFP 9.0. А по поводу буферизации применительно к этой проблеме поподробнее можно? Можно. Но для начала объясните почему такая проблема возникла вообще? Зачем Вам надо знать заблокирована запись другим пользователем или нет? Какую задачу Вы пытаетесь решить таким способом? Да, в общем-то, проблема вот в чем. Столкнулся с тем, что, редактируя справочник, я загружаю его поля в переменные и выкладываю их в форму редактирования. После рпедактирования пытаюсь записать их в файл. Но если в этот момент запись блокирована, то Фокс выдает то самое сообщение "... нажмите эск" и после нажатия эск очень долго думает, а если пользователь дважды клацнет, то программа абортируется. set escape выключать не хочу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 09:15 |
|
||
|
Проверка блокировки
|
|||
|---|---|---|---|
|
#18+
Опять же, вкратце. -) Накладываешь буферизацию на таблицу (Свойство BuferModeOverride у курсора в DataEnvironment формы). Лучше наложить 5 режим буферизации -) На форме напрямую редактируешь поля таблицы. Не надо никаких переменных -) По кнопке "Сохранить" пишешь примерно такой код Код: plaintext 1. 2. 3. 4. 5. 6. -) В главном стартовом файле обязательно сделай настройку вроде Код: plaintext Значение подбери сам. Но особо большое указывать не надо. И значение 1 я бы не указывал. Слишком мало. Собственно, все. Никаких дополнительных копирований в переменные и из переменных. Никаких самостоятельных попыток заблокировать/разблокировать запись. Все это сделает FoxPro самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 10:25 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=224&tid=1590322]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 280ms |

| 0 / 0 |
