![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как пересоздать индексные файлы? (DbiRegenIndexes не работает) [Paradox]
IGray © (2004-09-30 04:06:00)Не знаю, юзерa глючат или Paradox, но мои таблицы периодически лишаются каких-нибудь индексных файлов. Пытаюсь использовать DbiRegenIndexes, но ничего не создаётся :-( Или оно "с нуля" не умеет индексы создавать?
Конкретизирую - есть компонент Table1 типа TTable c загруженной в него инфой о полях и индексах, он "нацелен" на определённую таблицу, но индексы этой таблицы удалены и остался только ".DB" файл. Как восстановить удалённые индексные файлы?
Заранее спасибо за совет!
ЮЮ (2004-10-01 04:07:00) [1]>Предполагаю что нужно "пробежаться" по IndexDefs ...
в Helpe написано наоборот: "you cannot use TIndexDef objects in a dataset component’s IndexDefs property to add indexes to already existing tables. To do that, use methods such as AddIndex."
И это естественно, так как при запуске программы при удаленных индексных файлах ей ничего неизвестно об индексах (кроме тех, которые прописаны в св-вах TTable), на форме же нет компонентов TIndexDef, этот спмсок формируется динамически. Поэтому лучше иметь скрипт создания индексов где-то отдельно и исполнять его или описать все индексы в коде
IGray (2004-09-30 12:36:00) [2]OK, а заново создать-то как?
Может есть у кого-нибудь рабочий код для восстановления удалённых индексных файлов?
Предполагаю что нужно "пробежаться" по IndexDefs и для каждого IndexDef вызвать dbiAddIndex, но эта функция требует параметр типа IDXDesc, а как его получить по IndexDef?
Подскажите пожалуйста!
sniknik (2004-09-30 08:22:00) [3]восстановить удаленное можно только созданнием его заново, а не обновлением существующего (DbiRegenIndexes).