:: Главная :: Решения :: Статьи :: Проект "Русский 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


Тема Просмотров Написано Написано
  Работа с данными 6076 Владимир Максимов 01.03.05 21:04
  Выбрать из дочерней таблицы записи с максимальной датой 19931 Владимир Максимов 15.06.05 20:08
  Выбрать записи с повторяющимися (дублирующими) значениями поля 11693 Владимир Максимов 27.06.05 20:21
  Как выполнить восстановление поврежденных индексов 9575 Владимир Максимов 29.06.05 20:04
  Как изменить значения в одной таблице данными из другой 11457 Владимир Максимов 29.06.05 20:40
  Запрос с GROUP BY выдает сообщение о синтаксической ошибке 11087 Владимир Максимов 20.07.05 16:47
  При работе в сети иногда не открывается таблица 5413 Владимир Максимов 20.07.05 17:36
  Как получить программный код создания структуры базы данных 7779 Владимир Максимов 18.09.05 10:14
  Как восстановить поврежденную таблицу 18565 Владимир Максимов 31.08.08 22:02


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

On-line: 17 Taran Владимир Максимов Simple777 dos32  and Guests: 13


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