powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа в сети
11 сообщений из 11, страница 1 из 1
Работа в сети
    #33160921
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первый раз пишу программу под сеть, и вот возник вопрос как обрабатывать ситуацию когда два пользователя работают с одной таблицей и например один из них удалил запись, как отследить этот момент и обновить данные на форме у другого?
...
Рейтинг: 0 / 0
Работа в сети
    #33161146
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема обширная и неоднократно обсуждаемая. Идем и ищим.
А также читаем про блокивоки и команды и функции RLock()/Lock(), FLock(), UNLOCK, Delete()
Или про буфферизацию и функции CURSORSETPROP(), TableUpdate(), TableRevert(), OldVal(), CurVal()
...
Рейтинг: 0 / 0
Работа в сети
    #33161276
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вкратце:
Ставим на табличку 5-й тип буферизации (оптимистическая табличная. Оптимистическая чтобы другим не мешать, табличная так как более управляемая)
Редактируем запись.
Проверяем не удалена ли запись - Deleted(). Если удалена сообщаем пользователю откатываем изменения. Проверяем не редактировал ли ее другой юзер (функция CurVal()). Если редактировал - выдаем сообщение и решаем что делать - либо прекратить редактировать - тогда откатываем все изменения функцией TableRevert(), либо перекрываем своими - делаем сброс буфера TableUpdate().
Если никто запись не менял то просто сбрасываем буфер. Если TableUpdate вернул .f., откатываем изменения обратно и выдаем пользователю причину.
...
Рейтинг: 0 / 0
Работа в сети
    #33161351
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно ли без уведомления пользователя о том, что запись удалена. Например через таймер делать Requery()?
...
Рейтинг: 0 / 0
Работа в сети
    #33161354
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И как сильно это загрузит сеть?
...
Рейтинг: 0 / 0
Работа в сети
    #33161632
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А можно ли без уведомления пользователя о том, что запись удалена
Можно все, педложена просто схема. Я обычно на удаление не проверяю - успешный TableUpdate() в удаленую запись просто обновит твой буфер и удаленая строка пропадет. И при изменении другим пользователем тоже можно ничего не спрашивать - просто перекрывать своей инфой и все - кто последний тот и прав. Тут надо смотреть как надо пользователям.

>Например через таймер делать Requery()?
В случае буфферизации делать Requery() не надо - буфер автоматически обновляется по TableUpdate() и TableRevert(). В общем случае наверно можно, но я не встречал задачи в которой ситуация пока один юзер корректирует запись другой ее удалил встречалась бы часто.

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

>И как сильно это загрузит сеть?
Зависит от оптимизации представлений
...
Рейтинг: 0 / 0
Работа в сети
    #33161656
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос наверное глупый, но все таки, возможно ли создавать представления для таблиц не входящих в БД (свободных)? Просто в данный момент весь интерфейс построен на фильтрах.
...
Рейтинг: 0 / 0
Работа в сети
    #33161766
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно
...
Рейтинг: 0 / 0
Работа в сети
    #33161833
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как?)
...
Рейтинг: 0 / 0
Работа в сети
    #33162306
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Укажи в качестве источника представления свободную таблицу. Для хранения самого представления тебе конечно потребуется контейнер DBC, а для источника нет
...
Рейтинг: 0 / 0
Работа в сети
    #33163324
Tassadar77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа в сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]