Страница 1 из 1

Закрытие DBFIII

Добавлено: 02 Сентябрь 2008, 8:49
SSTA
Здравствуйте.
CW6.3 ABC
Манипуляции в DBFIII файлом: показываю в листбоксе, потом по кнопке закрываю, меняю путь и снова открываю. Проблема: на закрытии выдаёт "Entry Not Found', закрытия естественно не происходит. Чего там может быть?
Спасибо.

Re: Закрытие DBFIII

Добавлено: 02 Сентябрь 2008, 9:06
Admin
Ну вот тестовый пример сделал. Все работает.
Закрываем бровз. Меняем имя файла и вперед, дальше ...
В чем траблы?

Re: Закрытие DBFIII

Добавлено: 02 Сентябрь 2008, 9:30
SSTA
Хотел сделать не закрывая browse? то есть в этом же окне

Re: Закрытие DBFIII

Добавлено: 03 Сентябрь 2008, 1:34
Олег
SSTA писал(а):Хотел сделать не закрывая browse? то есть в этом же окне
А пример можно? Как закрываешь файл? Что при этом делаешь с открытым View бровза?
По правильному, если не хочешь закрывать окно бровза, надо сначала закрыть View бровза,
после этого закрыть бровзе-файл, поменять имя файла, открыть бровз-файл и открыть
заново View бровза. При этом, лучше всего, закрывать/открывать бровз-файл методами
ABC-либы, что-бы менеджер файлов учел новые изменения.
Кстати, а как меняешь имя файла? Через переменную в NAME() или через PROP:Name?
И еще - могут быть проблемы с корректной работой с новым файлом - могут идти данные
реально из предыдущего файла. Поэтому, рекомендую ПОСЛЕ закрытия бровз-файла
"сбросить" внутренние буфера файловой структуры - см. соответствующую тему в ClaList.

Re: Закрытие DBFIII

Добавлено: 29 Сентябрь 2008, 11:02
SSTA
FilePath = OldPath
Relate:File.Open
.
.
?Button:Accepted
Relate:File.close

FilePath = NewPath

Relate:File.Open
---------------------------
Правда, ситуация разрешилась, за давностью не вспомню как, но удалось добиться без закрытия View
Спасибо

Re: Закрытие DBFIII

Добавлено: 29 Сентябрь 2008, 16:04
Олег
SSTA писал(а):Правда, ситуация разрешилась, за давностью не вспомню как, но удалось добиться без закрытия View
Спасибо
Извини, но без закрытия View не получится НОРМАЛЬНОГО переключения! Ведь View представляет собой некий виртуальный файл, КАЖДАЯ запись которого ссылается на запись Primary/Secondary файла. Кроме этого View хранит и текущую последовательность обхода записей Primary-файла. После простой подмены Primary/Secondary файла БЕЗ переинициализации View ты практически гарантированно получишь НЕВЕРНЫЙ результат просмотра новых файлов! Причем, с первого взгляда, ты вряд-ли поймешь это! Просто View покажет тебе новый файл не с первой записи или покажет не все записи. Более того, часть данных из Secondary-файлов будет выведена не из тех записей, которые нужны! Да и при редактировании записей такого View ты вполне можешь изменить/удалить совершенно не ту запись, которую видишь в данный момент в бровзе!

Re: Закрытие DBFIII

Добавлено: 30 Сентябрь 2008, 1:17
SSTA
Спасибо за подробный ответ, буду делать аккуратнее.