Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Вниз

Индексы 


kat   (2001-12-14 09:30) [0]

Есть таблица dbf, к ней должен быть индексный файл mdx, но он был удален. При открытии таблицы сообщается что не найден индексный файл.
Можно ли как-нибудь определить какие поля были проиндексированы, чтобы тогда в программе создать эти индексы?



Andrey   (2001-12-14 10:12) [1]

Узнать тероетически можно, но это врядли поможет т.к. ключевые выражения могли быть сложными и имена индексов неизвесны.



Desdechado   (2001-12-14 10:24) [2]

Поскольку индексироваться могут не только отдельные поля, но и их комбинации, а также есть признаки (по возрастанию/убыванию, уникальный/неуникальный), то воссоздать структуру индекса нельзя. Нужно ее знать заранее. Кроме того, MDX - многотэговый индекс (много индексов в одном файле).
Просто в заголовке DBF прописан признак необходимости индекса (так установлено при его создании). Его можно сбросить.



kat   (2001-12-14 10:46) [3]

А как его сбросить?



Andrey   (2001-12-14 10:57) [4]

procedure ClearBytes(Table_name:string);
var S: array[1..2] of byte;
hand :integer;
begin
S[1]:=0;
S[2]:=0;
hand:=FileOpen(Table_name,$0002);
FileSeek(hand,28,1);
FileWrite(hand,S,2);
FileClose(hand);
end;



kat   (2001-12-14 11:03) [5]

попробую, спасибо




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.031 c
1-52586           Mikhalyov Dmitry      2001-12-27 16:21  2002.01.17  
О фреймах


1-52616           Brand                 2001-12-30 23:49  2002.01.17  
Цвет формы и всего остальнлго


1-52615           Socol                 2001-12-29 06:12  2002.01.17  
Прерход на новую строку.


1-52595           DNT                   2001-12-29 20:28  2002.01.17  
ListBox и данные


1-52620           abandon               2002-01-01 02:11  2002.01.17  
объекты на форме, написание компоненты