:: Visual Foxpro, Foxpro for DOS
Re: Table corrupted – как защитится?
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
Taran
Насколько помню индексы и связи несколько зафиксированы в самой БД

Из первого сообщения ТС очевидно, что БД в его случае не используется.
Иначе он бы коснулся и вопросов восстановления самой БД.
Ratings: 0 negative/0 positive
Re: Table corrupted – как защитится?
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
akvvohinc
Taran
Насколько помню индексы и связи несколько зафиксированы в самой БД

Из первого сообщения ТС очевидно, что БД в его случае не используется.
Иначе он бы коснулся и вопросов восстановления самой БД.

Не увидел очевидности.
При штатной работе в контейнер БД ничего не пишется, соотв. и сломаться она не может. Тем более в open database есть параметр noupdate.
Ratings: 0 negative/0 positive
Re: Table corrupted – как защитится?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
akvvohinc
Igor Korolyov
хотя там есть небольшая морока с флажком в заголовке dbf
Разве ж это морока?
Первый USE сбрасывает флажок, генерируя ошибку 1707.
Повторный USE нормально открывает таблицу.

Хотя, действительно, многие до последнего правили этот байт в файле с помощью FWRITE().
Сколько действий/команд требуется для варианта с USE и перехватом ошибки (при том дополнительно ещё надо удалить сам cdx, который тоже может отсутствовать), и сколько для FOPEN/FSEEK/FWRITE ?
Ну и самое простое - что с точки зрения банальной логики будет очевиднее - открыть файл на низком уровне и поменять там флажок, или открыть таблицы, проигнорировать ошибку (а мало ли какая ещё может там возникнуть ошибка), потом ещё раз открыть файл...

При этом третий вариант - банально подменить все cdx на "правильные по структуре" и выполнить REINDEX - выглядит ещё более просто. И сработает для варианта с использованием dbc (сами dbc/dct/dcx тоже можно взять из эталонной копии, попутно восстановив и метаданные).


------------------
WBR, Igor
Ratings: 0 negative/0 positive


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

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

© 2000-2024 Fox Club 
Яндекс.Метрика