Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как открыть таблицу, если индекс удален [D5, dBase, FoxPro, Paradox]


Alexandrda ©   (2002-07-31 16:09:00) 

Маги и кудесники поможите чем сможите. Есть таблица, я в ней изменяю кодировку через DbiDoRestructure, но есть одно но, индексы при этом удаляются с диска, но ссылка в таблице на них остается. Поэтому появляется ошибка "не могу найти индекс" соответственно. ЧТО ДЕЛАТЬ.


deleon   (2002-08-01 08:58:00) [1]

Ты неправильно заполняещь запись CRTblDesc...не забывай перед ее заполнением залить ее с помощью FillChar() или выделяй под нее память при помощи AllocMem. У меня с индексами все в порядке :)


Anatoly Podgoretsky   (2002-07-31 16:26:00) [2]

Есть такая хитрая функция, как DbiRegisterCallBack, предназначени специально для разрешения подобных ситуаций, естественно как и все в BDE справке с примером. И не хакерская, как некоторые советы.
Вот только лучше стоит разобраться с сутью, почему исчезают индексы.


Mike Kouzmine   (2002-07-31 16:24:00) [3]

Читаешь информацию о индексах, затем меняешь кодировку и, наконец, восстанавливаешь индексы.


sniknik   (2002-07-31 16:16:00) [4]

перед действием которое срубает индекс удалять его самому правильно. SQL-ем ALTER TABLE DROP INDEX к примеру.
Если индекс уже удален то снять признак индексированности (dBase, FoxPro - 28-й байт в таблице считая с нуля)


Наверх

Титульная страница Поиск, карта сайта Написать письмо