powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите с LocalView
6 сообщений из 6, страница 1 из 1
Подскажите с LocalView
    #34935721
AlexandrVZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем Привет!
Подскажите что я делаю не так. В БД есть LocalView, на одной форме она открывается под алиас1, а на другой форме под алиас2 и буферизируются (5). Почему после команды TABLEUPDATE() для алиас1 все ее изменения отображаются на алиас2. Хотя для алиас2 никаких REQUERY() не делалось?
...
Рейтинг: 0 / 0
Подскажите с LocalView
    #34935786
Рома Б.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Была подобная проблема. Долго искал. Оказалось, что одна форма самопроизвольно(!) меняет в процессе работы свой режим буферизации. В коде активации формы воостанавливал нужные зачения буферизации. Или можно сделать Private DataSession для форм.

Не обязательно, конечно. Но зато эту версию сразу легко отсечь проверкой режима буферизации.
...
Рейтинг: 0 / 0
Подскажите с LocalView
    #34935800
Рома Б.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон. Я работал не с представлениями, а с таблицами.
...
Рейтинг: 0 / 0
Подскажите с LocalView
    #34939501
AlexandrVZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант с Privat DataSession наверно бы помог, но у меня есть необходимость работать в одной сессии. Непонятность какая-то или настройка, которую я не учитываю, потому как получается, что буффер одного из курсоров скидывается не только во вьюху, но и в буфферы других курсоров, источником для которых она является. Хотя все курсоры буфферизированы (5).
...
Рейтинг: 0 / 0
Подскажите с LocalView
    #34939690
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буфер - это то, что возникает в момент внесения изменений. Причем буфер - это не есть копия исходных данных. Буфер - это только и исключительно измененные данные.

Грубо говоря, наложение буфера - это наложение прозрачной кальки на лист бумаги. Изменения попадают не на собственно лист бумаги, а на эту прозрачную кальку.

Если в другой рабочей области внесли изменения в собственно исходные данные (собственно на лист), то, естесственно, если поверх этих данных нет буфера (нет изменений на кальке), то в другой рабочей области эти изменения отобразятся.

Другими словами, в данном случае, исходными данными (листом бумаги) для обоих копий View оказалась одна и та же временная таблица. Какая именно можно посмотреть через команду

Код: plaintext
?DBF("алиас")

Дело в том, что по умолчанию, открытие как таблиц, так и Local View происходит с использованием опции AGAIN. Командой вроде

Код: plaintext
USE MyView AGAIN IN  0  ALIAS MyView

Так вот, опция AGAIN как раз и говорит о том, что надо не заново выполнить Local View в новую временную таблицу, а использовать ранее открытую временную таблицу.

Вам надо исключить Local View из DataEnvironment одной из форм и открывать его вручную командой USE без опции AGAIN. Можно в событии Form.Load(). Также вручную придется и закрывать это Local View при закрытии формы.

Хотя, более грамотным решением было бы выполнение каждой формы в Private DataSession.
...
Рейтинг: 0 / 0
Подскажите с LocalView
    #34942270
AlexandrVZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ВладимирМ за информацию, что то я действительно с источниками для вьюх тормознул. Что касается использования Private DataSession, то в моем случае это не подходит (так как для ее использования прийдется много чего переписать). Поэтому для обхода этой ситуации я просто добавил в базу еще один LocalView, теперь каждая форма использует свою вьюху.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите с LocalView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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