Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переиндексация таблиц Paradox [D6, Paradox]


Alex1980 ©   (2002-10-15 08:41:00) 

Как переиндексировать программно таблицы Paradox?


Ильдар   (2002-10-24 16:28:00) [1]

Я сделал себе процедуру для унифицированного открытия таблиц, в т.ч. и с переиндексацией:

TYPE
TTernary = (NotKnow, No, Yes); // тройственный выбор: не знаю, нет, да

procedure tblOpen(Table: TTable; // Таблица
aIndex: array of String; // Списируемых полей (первое - ключевое)
bReindex: TTernary = NotKnow; // Переиндексировать
bExclusive: TTernary = NotKnow); // Режим открытия
// Открыть таблицу данных
var
i: Integer;
IO: TIndexOptions;
IndexName: String;
begin
Table.DatabaseName:= GetCurrentDir;
If bReindex = NotKnow then bReindex:= DatabaseReindex;
If bReindex = Yes then
begin
Table.IndexDefs.Update;
If Table.IndexDefs.Count > 0 then Table.DeleteIndex(Table.IndexDefs[0].Name);
IO:= [IxPrimary];
IndexName:= "";
For i:= 0 to Length(aIndex) - 1 do
begin
Table.AddIndex(IndexName, aIndex[i], IO);
IO:= [IxCaseInsensitive];
IndexName:= Char(i + Ord("A"));
end;
end;
If bExclusive = NotKnow then bExclusive:= DatabaseExclusive;
Table.Exclusive:= bExclusive = Yes;
Table.Open;
end;

Пример использования:tblOpen(tblCard, ["Card", "Material;Price", "MaterialName;Price",
"Repman;Material;Price", "Repman;MaterialName;Price",
"RepmanName;MaterialName;Price"]);

DatabaseReindex и DatabaseExclusive - глобальные переменные для общих параметров открытия множества таблиц.


Varibrus   (2002-10-15 10:37:00) [2]

Посмотри статью Paradox File Corruptionв http://www.thedelphimagazine.com/samples/Paradox/paradox.htm#TOP


Anatoly Podgoretsky   (2002-10-15 09:05:00) [3]

dbiRegenIndexes


Наверх

Титульная страница Поиск, карта сайта Написать письмо