powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как проверить целостность индекса?
7 сообщений из 7, страница 1 из 1
Как проверить целостность индекса?
    #32516539
e_mikhailov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, подскажите пожалуйста, с помощью какой функции (набора функций) можно проверить целостность индекса в таблице FoxPro?
...
Рейтинг: 0 / 0
Как проверить целостность индекса?
    #32516759
Фотография Андрей Давыдов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zap
...
Рейтинг: 0 / 0
Как проверить целостность индекса?
    #32517459
e_mikhailov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А при чём тут ZAP? Ведь эта функция удаляет все записи из таблицы, а мне нужно программно узнать, испорчены ли индексы в таблице, или всё в порядке...
...
Рейтинг: 0 / 0
Как проверить целостность индекса?
    #32517484
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если по команде USE нет ругани, то считай индексы нормальными. Если речь идет не о структурном индексном файле, то проверяешь ругань на команду SET INDEX

Других способов нет.

Проверка же того, что в индексе учтены все существующие записи таблицы по времени сопоставима с переиндексацией. Т.е. не имеет практического смысла.
...
Рейтинг: 0 / 0
Как проверить целостность индекса?
    #32517500
if
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if
Гость
ламерский вопрос - а что значит целостность индекса?
Т.е. если есть подозрение на некорректность индекса (не находит записи и т.д.), то я так мыслю нужно переиндексировать. Может не так понял вопрос?
Насчёт ZAP парень просто прикололся - не обращай внимания...
...
Рейтинг: 0 / 0
Как проверить целостность индекса?
    #32518151
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полноценная проверка индексов действительно не целесообразна, но если поставлена задача оперативного обнаружения сбоя, то кое-что все-таки можно сделать. Сбой чаще происходит при добавлении записей, а не при исправлении данных (впрочем, исправление данных в идеале вообще должно отсутствовать как класс). Поэтому можно ограничиться контролем корректности первичного ключа таблицы.

Я использовал следующий алгоритм. Блокируем запись в служебной таблице, являющейся счетчиком первичных ключей и берем оттуда значение последнего использованного ключа. Делаем set deleted off (на случай, если последняя физическая запись таблицы удалена), устанавливаем set order на первичный ключ таблицы и сравниваем значения ключа из таблицы ключей, значение при go (reccount()) и значение при go bottom - все значения должны совпадать. Снимаем блокировку.

Работает быстро, поэтому можно использовать при открытии таблиц. Конечно, зависит от реализации механизма получения ключей (ключ должен получаться непосредственно перед записью и не зависеть от каких-то логических условий сохранения, т.е. если ключ брался, то это должно означать, что была попытка записи данных). Собственно, все. Может понадобится
...
Рейтинг: 0 / 0
Как проверить целостность индекса?
    #32518288
e_mikhailov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XAndy, да, действительно, так всё заработало!

Спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как проверить целостность индекса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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