:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки ::
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  


Форумы  :: FAQ FoxPro

При работе в сети иногда не открывается таблица
Дата: 20.07.05 17:36:55 ОтветитьЦитировать

Проблема

В сетевом приложении при одновременной работе нескольких пользователей иногда не открываются таблицы. Возникает сообщение вроде

Цитата:
"Attempting to lock... Press Esc to cancel"

Причина

Это связано с ужесточением контроля структуры таблиц в момент их открытия, начиная с версии Visual FoxPro 8. Варианты этого контроля регулируются настройкой

SET TABLEVALIDATE

На момент проведения такого контроля (при открытии таблицы) требуется заблокировать заголовок таблицы. Если это невозможно (заголовок блокирован другим пользователем), то и возникает данное сообщение.

Решение

В принципе, Вы, конечно, можете снизить уровень контроля, изменив настройку SET TABLEVALIDATE. Однако более корректным является изменение самой логики построения многопользовательского приложения.

Основная идея изменения логики заключается в уменьшении времени блокировки как заголовка таблицы (что необходимо в данном случае), так и каких-либо блокировок в таблицах вообще. Т.е. недопустимо давать команду типа FLOCK() на неопределенно долгое время, ожидая реакции пользователя. Или использовать пессимистическую буферизацию.

Блокировка должна осуществляться только в момент сохранения внесенных изменений и в этот момент недопустимо ожидание реакции пользователя.

Разумеется, такая идеология построения многопользовательского приложения при неизменном уровне контроля SET TABLEVALIDATE не устранит данную проблему совсем, но существенно снизит как вероятность ее появления, так и вероятность повреждения таблиц в случае аварийного отключения питания.
Ratings: 0 negative/0 positive


Тема Просмотров Написано Написано
  Работа с данными 6000 Владимир Максимов 01.03.05 21:04
  Выбрать из дочерней таблицы записи с максимальной датой 19496 Владимир Максимов 15.06.05 20:08
  Выбрать записи с повторяющимися (дублирующими) значениями поля 11395 Владимир Максимов 27.06.05 20:21
  Как выполнить восстановление поврежденных индексов 9380 Владимир Максимов 29.06.05 20:04
  Как изменить значения в одной таблице данными из другой 11077 Владимир Максимов 29.06.05 20:40
  Запрос с GROUP BY выдает сообщение о синтаксической ошибке 10813 Владимир Максимов 20.07.05 16:47
  При работе в сети иногда не открывается таблица 5320 Владимир Максимов 20.07.05 17:36
  Как получить программный код создания структуры базы данных 7675 Владимир Максимов 18.09.05 10:14
  Как восстановить поврежденную таблицу 17941 Владимир Максимов 31.08.08 22:02


Извините, но у вас нет прав для того, чтобы писать в этом форуме.

On-line: 25 pasha_usue  and Guests: 24


© 2006 Fox Club 
Яндекс.Метрика