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
|
Правильно. Смотреть через запрос, редактировать через таблицу. Должно сработать. |
|
** 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);
|
|