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


Форумы  :: FAQ FoxPro

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

Проблема

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

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

Причина

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

SET TABLEVALIDATE

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

Решение

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

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

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

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


Тема Просмотров Написано Написано
  Работа с данными 6667 Владимир Максимов 01.03.05 22:04
  Выбрать из дочерней таблицы записи с максимальной датой 22037 Владимир Максимов 15.06.05 21:08
  Выбрать записи с повторяющимися (дублирующими) значениями поля 13027 Владимир Максимов 27.06.05 21:21
  Как выполнить восстановление поврежденных индексов 10750 Владимир Максимов 29.06.05 21:04
  Как изменить значения в одной таблице данными из другой 13375 Владимир Максимов 29.06.05 21:40
  Запрос с GROUP BY выдает сообщение о синтаксической ошибке 12359 Владимир Максимов 20.07.05 17:47
  При работе в сети иногда не открывается таблица 5952 Владимир Максимов 20.07.05 18:36
  Как получить программный код создания структуры базы данных 8389 Владимир Максимов 18.09.05 11:14
  Как восстановить поврежденную таблицу 21602 Владимир Максимов 31.08.08 23:02


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

On-line: 3 (Гостей: 3)

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