C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как реиндексировать базу формата dbf?, Как реиндексировать базу формата dbf?
Vadoo!
  Отправлено: 09.11.2004, 21:14


Не зарегистрирован







Подскажите плиз!
Как реиндексировать базу формата dbf?
Часть данных заносится с помощью TTable,
а часть Query. После создания новой записи
Table-ом нарушается индекс и Query не может
редактировать новые данные. Причем проги
просто виснут не выдавая никаких сообщений
об ошибке. Помогает только реиндексация
в FoxPro. Можно ли это сделать Билдером?
AVC
Отправлено: 10.11.2004, 10:35


Ветеран

Группа: Модератор
Сообщений: 1583



По стандарту таблица должна быть открыта со всеми своими индексами тогда Edit-Post сам их модифицирует. Этого не происходит?
vadoo!
Отправлено: 11.11.2004, 22:02


Не зарегистрирован







Реиндексация происходит если работать через TTable. Но ряд вещей удобнее делать через Query, которая по идее индексы не использует, а получается, что использует. Зато появилась идея. Попробую постонуть через Табле, может проиндексирует. Спасибо.
AVC
Отправлено: 12.11.2004, 14:52


Ветеран

Группа: Модератор
Сообщений: 1583



Правильно. Смотреть через запрос, редактировать через таблицу. Должно сработать. smile.gif
** vadoo
Отправлено: 13.11.2004, 21:26


Не зарегистрирован







В SQL есть команда ALTER INDEX ACTIVATE (DEACTIVATE)
Она то же должна реиндексировать, но непонятно как задавать name index.
Мож кто знает?
Андрей
Отправлено: 16.11.2004, 19:33


Не зарегистрирован







Попробуй этими функциями.
DbiRegenIndexes(hDBICur hCursor);
DbiRegenIndex(hDBIDb hDb, hDBICur hCursor, char * pszTableName, char * pszDriverType, char * pszIndexName, char * pszIndexTagName, Word iIndexId);

Вернуться в Работа с базами данных в C++Builder