Форум — Ответы ( К темам )
? | Елена: Создание, удаление индекса (16-04-2003 16:56:56) |
1. Имеется файл a.dbf базы данных формата Foxbase 2.0+. В C++Builder 6 с помощью Database Desktop создан индексный файл a.mdx с несколькими индексами. Объясните пожалуйста, каким способом в C++Builder 6 программно, во время выполнения приложения, можно добавить новый индекс если: Ш индексный файл a.mdx существует; Ш отсутствует. Т.к., применяя AddIndex для добавления индекса, в зависимости от того имеется или нет индексный файл a.mdx, формируется исключение типа EDBEngineError со следующими сообщениями: 'Index is out of date’; 'Index does not exist’; 'Index already exists’. 2. Во время выполнения программы удалить существующие индексы из индексного файла a.mdx, в то время как список IndexDefs –пустой. 3. Создать индекс из нескольких полей. | |
Павел (16-04-2003 20:54:19) | |
Не советую работать из C++Builder с .dbf Файлами, это сплошное мучение. А если уж приходится работать с .dbf файлами, то на VisualFoxPro | |
Alexei (16-04-2003 21:26:22) | |
Установите и используйте компоненты Apollo Apollo VCL — быстродействующее xBase ядро базы данных для разработчики приложений на Borland Delphi и C++Builder. Apollo VCL обеспечивает высокоскоростной, многопользовательский локальный доступ к данным и индексным файлам CA-Clipper (.DBF/.DBT/.NTX), FoxPro (.DBF/.FPT/.IDX/.CDX) , а так же HiPer-SIx .NSX/.SMT индексным и memo файлам . Apollo VCL не требует дополнительных драйверов как например, BDE, ODBC, Access или JET. http://cool-bag.chat.ru/ ------------------------------- Через компоненты c вкладки ADO: Я попробовал исполнить в SQL Explorer для dbf-базы стандартный запрос создания индекса: create index index_name on table_name ( field1, field2, ... ) И получилось (даже сам не ожидал, что драйвер такую возможность поддерживает). Может быть, имеет смысл исполнить аналогичный запрос ч/з TADOQuery? ------------------------------ |