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

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

Задолбали индексы в Paradox e [D5, Paradox]


Страницы:   1 2

Weare ©   (2002-06-21 17:27:00) 

Подскажите, пожалуйста. У меня часто при работе программы выскакивает "Index is out of date". В Desktope это исравлял, но ведь хочеться, чтобы программа сама это исправляла.(кстати почему вообще это так часто появляется)
Тогда я решил вставить в код программы перегенерацию индексов:

DataModule2.Users.Exclusive:=True;
DataModule2.Users.Open;
Check(dbiRegenIndexes(DataModule2.Users.Handle));

Для этой таблицы все нормально отрабатывает, а для другой пишет:
"Must use baseorder for this operation".Подскажите, в чем тут дело и есть ли другое решение проблемы.
Заранее огромное спасибо.


MEgor   (2002-06-25 02:56:00) [21]

У меня похожая ситуация. Делаю Table1.EmptyTable - и после этого
получаю "Index is out of date". В этом индексе присутствует поле типа Data. На другом индексе такого не возникало (пока). Решить проблему не смог.
Пришлось удалять записи последовательным перебором.

Еще. у одной таблицы два индекса.
Добавляю в нее порядка 500 тыс. записей - ни один индекс не изменился, т.е. оба как были 2 кб., так и остались.
У другой таблицы из двух индексов меняется только один.
Короче говоря - бардак с этим парадоксом.


Weare   (2002-06-24 14:11:00) [22]

Подожди VAleksey, ты что хочешь сказать, что индексы слетают из-за переполнения кэша. Объясни, пожалуйста, поподробнее...


VAleksey   (2002-06-24 13:34:00) [23]

Кэш почаще сбрасывай. ( dbiSaveChages )


Weare   (2002-06-24 12:49:00) [24]

Спасибо всем,
TTable я итак использую, не помогало.
А вот ответ Виктора действительно помог (спасибо огромное, а то я зациклился на этой проблеме)- все работает.
Кстати, может кто подскажет почему вообще так часто портятся индексы (или индексные файлы).
Идея моей проги такая: у меня в моей проге к базе (около 20 таблиц) по сетке обращаются несколько человек. И в зависимости от введеного пароля таблицы фильтруются. И затем один человек с правами админа работает со всей базой.


Виктор   (2002-06-24 10:40:00) [25]

просто перед переиндексацией установи
DataModule2.Users.IndexName := "";


VAleksey   (2002-06-24 08:16:00) [26]

Base order означает непосредственный (прямой) доступ к таблице.
Берешь (лучше создаешь) новый объект TTable назначаешь ему имя таблицы и только затем вызываешь dbiRegenIndexes


Weare   (2002-06-22 14:20:00) [27]

Речь идет об индексах. Хотя первичные ключи у меня типа autoincrement.


MsGuns   (2002-06-21 19:47:00) [28]

Речь идет об индексах или первмчных ключах (Primary) ?


Страницы:   1 2

Наверх

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