|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Через foxpro блокируют базу на запись командой Flock(), и я через VFP 9.0 не могу открыть эту базу даже на чтение, через фокс она нормально открывается. VFP 9.0 выдает ошибку Код: plaintext
Что это за файл и где он должен быть? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:10 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Alex-ZZZЧерез foxpro блокируют базу на запись командой Flock(), и я через VFP 9.0 не могу открыть эту базу даже на чтение, через фокс она нормально открывается. VFP 9.0 выдает ошибку Код: plaintext
Что это за файл и где он должен быть? Спасибо.Это у Вас надо спрашивать где у Вас такой файл и где он должен быть. Мы об этом не имеем и не можем иметь ни малейшего понятия. Предположить можем, что это обработчик ошибок, который у Вас куда-то затерялся. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:18 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Нет, имееться ввиду, что при попытке открыть просто через VFP, а не через мою программу. Тоесть этот файл должен быть гдето в самом VFP, как я понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:25 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Alex-ZZZНет, имееться ввиду, что при попытке открыть просто через VFP, а не через мою программу. Тоесть этот файл должен быть гдето в самом VFP, как я понимаю.Вы можете понимать все, что угодно, но от этого положение дел не изменится и самписный файл в стандлартной поставке фокса не появится. Можно предположить, что Вы открываете таблицу из базы данных, в которой и использован такой обработчик. В базе данных (не в таблице!) уже все проверили? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:29 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Да я просто копировал таблицу на сеть, блокировал ее через досовский фокс и пытался открыть через VFP 9.0 файл-открыть-имя таблицы, если ограничить длительность попытки подключения 10 секунд (SET REPROCESS TO 10 SECONDS) то выскакивала ошибка описанная вверху, если не ограничивать висит долго и упорно. Через досовский фокс все нормально открываеться, как только снимаешь блокировку то и через VFP открываеться. Файл не самописный. Это как я понимаю может быть, что этого prg у меня не хватает в стандартной программе VFP. Наверное нужно узнать где он должен находиться и взять его гдето и положить туда. Может вы можете поиском посмотреть где у вас он лежит и есть ли вообще и скинуть его мне. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:49 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Alex-ZZZФайл не самописный. Это как я понимаю может быть, что этого prg у меня не хватает в стандартной программе VFP. Наверное нужно узнать где он должен находиться и взять его гдето и положить туда. Может вы можете поиском посмотреть где у вас он лежит и есть ли вообще и скинуть его мне. Спасибо.Третий раз пишу - нету в стандартной поставке фокса таких фaйлов, нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 10:57 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Ясно, тогда вопрос в другом. Почему VFP не может просматривать в режиме SHARED таблицы заблокированые FLOCK() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:17 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Alex-ZZZЯсно, тогда вопрос в другом. Почему VFP не может просматривать в режиме SHARED таблицы заблокированые FLOCK() ?Потому, что эта функция блокирует весь файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:20 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Что у вас возвращает Код: plaintext
Если там окажется что-то, отличное от пустой строки, то дайте команду Код: plaintext
без параметров, чтобы отключить ваш собственный обработчик ошибок. Вероятно, вы где-то подключили свой собственный обработчик ошибок и забыли его выключить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:28 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Alex-ZZZЯсно, тогда вопрос в другом. Почему VFP не может просматривать в режиме SHARED таблицы заблокированые FLOCK() ? Из-за настройки SET TABLEVALIDATE Дело в том, что если эта настройка установлена в не четное значение (т.е. включено значение 1), то при открытии таблицы будет предпринята попытка заблокировать заголовок таблицы для проверки факта соответствия реального количества записей и того количества записей, которое записано в заголовке таблицы. А, поскольку заголовок таблицы оказался заблокирован командой FLOCK(), то это сделать становится невозможно. Как следствие, таблица вообще не открывается. Исправить эту ситуацию можно добавив значение 4 в настройку SET TABLEVALIDATE. Она как раз и призвана игнорировать блокировку другим процессом. Т.е. в этом случае проверка просто не будет выполнена, но и сообщений об ошибках не будет. По умолчанию, SET TABLEVALIDATE установлено в значение 3. Значит, надо сделать такую настройку Код: plaintext
Совсем отключать эту настройку - не стоит. Хотя это тоже позволит открывать таблицы, заблокированные другим пользователем. Текущее значение настройки можно посмотреть так Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:41 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
проходящий.Alex-ZZZЯсно, тогда вопрос в другом. Почему VFP не может просматривать в режиме SHARED таблицы заблокированые FLOCK() ?Потому, что эта функция блокирует весь файл. Вроде бы нет. Вот вырезка из хелпа про эту функцию. Когда таблица блокирована, она становится доступной для чтения и записи только пользователю, установившему блокировку. Остальные пользователи сети имеют к таблице доступ только по чтению. Я же не могу открыть даже на чтение. ВладимирМ Проверил. Ну и до этого я уже проверял, что если не ограничивать время попыток доступу то сообщение об ошибке не выскакивает, просто висит и все так как по умолчанию VFP будет пытаться подключиться бесконечно долго. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:42 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
ВладимирМAlex-ZZZЯсно, тогда вопрос в другом. Почему VFP не может просматривать в режиме SHARED таблицы заблокированые FLOCK() ? Из-за настройки SET TABLEVALIDATE Дело в том, что если эта настройка установлена в не четное значение (т.е. включено значение 1), то при открытии таблицы будет предпринята попытка заблокировать заголовок таблицы для проверки факта соответствия реального количества записей и того количества записей, которое записано в заголовке таблицы. А, поскольку заголовок таблицы оказался заблокирован командой FLOCK(), то это сделать становится невозможно. Как следствие, таблица вообще не открывается. Исправить эту ситуацию можно добавив значение 4 в настройку SET TABLEVALIDATE. Она как раз и призвана игнорировать блокировку другим процессом. Т.е. в этом случае проверка просто не будет выполнена, но и сообщений об ошибках не будет. По умолчанию, SET TABLEVALIDATE установлено в значение 3. Значит, надо сделать такую настройку Код: plaintext
Совсем отключать эту настройку - не стоит. Хотя это тоже позволит открывать таблицы, заблокированные другим пользователем. Текущее значение настройки можно посмотреть так Код: plaintext
Да проблема решилась большое спасибо !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:51 |
|
Проблемы с блокировкой баз
|
|||
---|---|---|---|
#18+
Alex-ZZZ ВладимирМ Проверил. Ну и до этого я уже проверял, что если не ограничивать время попыток доступу то сообщение об ошибке не выскакивает, просто висит и все так как по умолчанию VFP будет пытаться подключиться бесконечно долго. Совет по ON ERROR - это ответ на вопрос темы про файл "File 'clerror.prg' does not exist". Очевидно, что у вас произошел перехват ошибки и попытка ее обработки. Если FoxPro не находит функцию или процедуру с именем CLERROR, то он предполагает, что речь идет о файле с таким же именем. Вот и появляется соответствующее сообщение об ошибке. Судя по имени, это должна была быть какая-то переменная, которую использовали как функцию. Дишние скобки указали. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 12:13 |
|
|
start [/forum/topic.php?fid=41&msg=35995975&tid=1586431]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 451ms |
0 / 0 |