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

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

Востановление индексных файлов в Paradox [D7, Paradox]


D@Nger ©   (2006-08-14 08:56:00) 

Здравствуйте мастера! У меня TTable и парадоксовская таблица. После сбоя, полетели индексные файлы (Index is out of date). Пытаюсь сделать процедурку для восстановления индексных файлов.
  Делаю так:
Check(DbiRegenIndex(log_Tbl.DBHandle, nil, PChar(log_tbl.TableName), nil,   PChar(''), PCHar(''), 0));

Но не знаю что указывать в выделенном участке процедуры. В первом PChar, наверно, имя восстанавливаемого индекса, а во втором PChar не знаю что ставить, а в третьем, наверно номер индекса.
  В общем ничего не получается. Битые индексы удалил. остался один *.db. Мне надо что бы индексные файлы создались.

Пробовал и вторым способом из RXLib процедурой ReindexTable и RestoreIndex. Тоже ничего не выходит. Подскажите как мне переиндексировать таблицу.

Спасибо!.


Anatoly Podgoretsky   (2006-08-14 15:03:00) [1]

Не каждому дано работать с АПИ, даже если есть подробные, рабочие примеры на Дельфи.


D@Nger   (2006-08-14 14:24:00) [2]

В общем, не получается у меня нифига. Придется наверно просто удалять индексы и создавать их заново. Не хотелось конечно делать по тупому, но другого варианта пока не вижу.


Desdechado   (2006-08-14 13:59:00) [3]

Check - это просто проверка корректности выполнения БДЕ его внутренней операции.

> Invalid handle to the function). В справке ясно указано, что в
> качестве параметра указывается хендл таблицы.
?


D@Nger   (2006-08-14 13:34:00) [4]

Пытаюсь востановить индексы следующим образом:

   Check(DbiRegenIndexes(log_tbl.Handle));


Выходит ошибка, мол не правильный хендл (Invalid handle to the function). В справке ясно указано, что в качестве параметра указывается хендл таблицы.

Из-за чего это может быть ?


Anatoly Podgoretsky   (2006-08-14 11:20:00) [5]

Процедура Check имеет косвенное отношения к базам. Подробности в справке.


D@Nger   (2006-08-14 11:09:00) [6]

У меня возникли вопросы:
1)А процедура Check восстанавливает индексы, т.е. я двигаюсь в нужном направлении ?
2) Процедуру Check нужно вызывать для каждого индекса отдельно?
3) В каком модуле сидит процедура Check, в справке найти не получается ?


Anatoly Podgoretsky   (2006-08-14 10:15:00) [7]

Почему бы не получить этот ответ из первоисточника, то есть из родной справки?
pszIndexName, pszIndexTagName, iIndexId);
Каждый из параметров прекрасно описан, есть примеры использования на двух языках.


Наверх

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