liones, проблема не решилась?
1. пересоздание индексов:
uses
BDE:
..
begin
Table1.Exclusive := TRUE;
Table1.Open;
DbiRegenIndexes(Table1.Handle);
2. способ №1 сработает только в том случае, если нарушен вторичный индекс и таблица хотя бы открывается. если она даже не открывается - значит убит первичный индекс, и тогда БДЕ можно попробовать обмануть: вычитать значение из хидера таблицы и засунуть его в хидер индекса. но это уже нетривиально.
для таких случаев лучше использовать собственную утилиту БДЕ: TUtility (
http://info.borland.com/devsupport/bde/utilities.html).
там же на сайте можно найти исходники для delphi/bc++.