Доклад: Компонент TTable
ixCaseInsensitive, ixExpression);
Поясним эти значения. ixPrimary обозначает первичный ключ, ixUnique - уникальный индекс, ixDescending - индекс, отсортированный по уменьшению значений (для строк - в порядке, обратном алфавитному), ixCaseInsensitive - индекс, “нечувствительный” к регистру букв, ixExpression - индекс по выражению. Отметим, что упоминание о последнем значении также отсутствует в документации и online-справочнике . Опция ixExpression позволяет для таблиц формата dBase создавать индекс по выражению. Для этого достаточно в параметре Fields указать желаемое выражение, например: 'Field1*Field2+Field3'. Вообще говоря, не все опции индексов применимы ко всем форматам таблиц. Ниже мы приведем список допустимых значений для таблиц dBase и Paradox:
Опции индексов dBASE Paradox
---------------------------------------
ixPrimary ь
ixUnique ь ь
ixDescending ь ь
ixCaseInsensitive ь
ixExpression ь
Необходимо придерживаться указанного порядка применения опций индексов во избежание некорректной работы. Следует отметить, что для формата Paradox опция ixUnique может использоваться только вместе с опцией ixPrimary (см. пример на диске - Рис. 0-1).
Итак, после заполнения всех указанных выше свойств и вызова методов Add для FieldDefs и IndexDefs необходимо вызвать метод класса TTable - CreateTable:
with Table1 do
begin
DatabaseName:='dbdemos';
TableName:='mytest';
TableType:=ttParadox;
{Создать поля}
with FieldDefs do
begin
Add('Surname', ftString, 30, true);
Add('Name', ftString, 25, true);
Add('Patronymic', ftString, 25, true);
Add('Age', ftInteger, 0, false);
Add('Weight', ftFloat, 0, false);
end;
{Сгенерировать индексы}
with IndexDefs do
begin
Add('I_Name', 'Surname;Name;Patronymic',
[ixPrimary, ixUnique]);