![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Повреждение индексов в таблицах Paradox. [D5, Paradox]
pusrg © (2002-03-20 18:01:00)Добрый день, уважаемые мастера!
Хотелось бы узнать есть ли какие-то общепринятые методы противодействия против постоянного повреждения индексов в таблицах Парадокс?
У меня есть заказчик у которого на парадоксовской базе постоянно портятся индексы с периодичностью 3-6 месяцев. (Повторялось уже 2 раза). Конечно не проблема заново создать эти индексы в Database Desctope, но ради этого каждый раз ездить к клиентам просто не хватит сил...
Большая просьба, не писать предложения сменить СУБД (сейчас я уже использую ИБ, но эта задача должна остаться в Парадоксе).
Буду благодарен, за любые ответы.
Anatoly Podgoretsky (2002-03-21 00:14:00) [1]pusrg © (20.03.02 19:01)
Индекс может быть так порушен, что ошибка не обнаруживается, добавь пункт в меню
pusrg (2002-03-20 19:24:00) [2]To sniknik
Спасибо за помощь!
sniknik (2002-03-20 19:19:00) [3]Ну можно в начале программы открыть все талици
try
Open;
except
а здесь отловить ошибку от индекса и переинтексировать.
on E: EDataBaseError ...
end;
номер ошибки не скажу не знаю. может и по другому можно.
pusrg (2002-03-20 19:01:00) [4]To sniknik
А есть ли функции в модуле БДЕ позволяющие определить что индекс разрушен? Или стоит тогда поставить обработчик исключений на момент первоначального открытия таблиц?
sniknik (2002-03-20 18:51:00) [5]После того как индексы порушились. До этого не имеет смысла. А предотвратить это невозможно в силу непредвиденности обстоятельств обрушения (питание вырубили, программу прервали, антивирус постарался, ктото запись на диск перехватил ... и т.д.).
pusrg (2002-03-20 18:45:00) [6]To sniknik
Спасибо за Ваш ответ.
Когда лучше использовать эту функцию: при закрытии программы или после обновления данных в таблице?
sniknik (2002-03-20 18:34:00) [7]Вставь куданибудь в програму "переиндексация" - Check(DbiRegenIndexes(Table.Handle));