Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > проблема с индексами в dbf |
Автор: Kusik 14.11.2006, 14:47 |
при работе с дбф возникли проблемы, касающие индексов. хочу найти способ переиндексирования dbf таблиц непосредственно из Deplhi. (Надоело каждый раз при подобных проблемах открывать Foxpro и делать REINDEX на каждой таблице). нашел в документашке функцию DbiRegenIndexes(Table1.Handle), но чтото она не индексирует, бывало даже она удаляла индексный файл (cdx) и восстановить его можно было тока в Фоксе. сейчас же, при попытке сджелать переиндексацию с помощью этой функции вылазит ошибка: "Index does not exists (...MDX)" хотя никакого MDX файла там нет. помогите, подскажите советом |
Автор: Akella 14.11.2006, 14:59 | ||
|
Автор: ТоляМБА 14.11.2006, 15:01 |
BDE: Query, SQL: Create Index и будет тебе MDX |
Автор: Kusik 16.11.2006, 13:12 | ||
Akella, спасибо за ответ, то что ты предлагаешь имеет отношение к dDase| FoxPro таблицам?
и что это единственный корректный способ переиндексировать таблицу? и почему эта функция неработает? DbiRegenIndexes(Table1.Handle) Допустим что индексный файл запорчен, и я не знаю какие у таблицы индексы. как мне его восстановить? Добавлено @ 13:20 допустим есть таблица DBase III+ с индексным файлом *.cdx при первой попытке переиндексировать вылазит ошибка: "Invalid Language Driver" и файл *.cdx пропадает. а при повторном вывозе "Index does not exists (...MDX)". |
Автор: Akella 16.11.2006, 14:39 | ||
нет не единственный см. вложения Добавлено @ 14:40 в настройках BDE, возможно, нужно покавыряться и установить корректные LangDrivers |
Автор: SergeBS 17.11.2006, 15:10 |
Kusik, Akella, Не парьтесь с BDE. Уже давно существует куча более легких (100-600 кБ к ЕХЕ-шнику и все) и удобных (все настройки - в программе) движков. И проблем нет. Я например в Halcyon при старте программы базы открываю и индексирую. Чтобы иметь правильные индексы. Впрочем, в Fox(DOS) делал так же. А CDX - индексы избегаю как раз из-за их "обязаловки". |