Разработка баз данных в Delphi. 11 Уроков


         

Необходимо придерживаться указанного порядка применения


Опции индексов      dBASE     Paradox

---------------------------------------

ixPrimary                       ü

ixUnique              ü     ü

ixDescending          ü     ü

ixCaseInsensitive               ü

ixExpression          ü

Необходимо придерживаться указанного порядка применения опций индексов во избежание некорректной работы. Следует отметить, что для формата Paradox опция ixUnique может использоваться только вместе с опцией ixPrimary (см. пример на диске - Рис. 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]);

      Add('I_Age', 'Age', [ixCaseInsensitive]);

    end;

    CreateTable;

  end;



Рис. 1: Программа CREATABL демонстрирует  технику создания таблиц во время выполнения

Индексы можно сгенерировать и не только при создании таблицы. Для того чтобы сгенерировать индексы для существующей таблицы, нужно вызвать метод AddIndex класса TTable, набор параметров которого полностью повторяет набор параметров для метода Add класса TIndexDefs:

procedure AddIndex(const Name, Fields: string;
                                Options: TIndexOptions);

При этом для метода AddIndex справедливы все замечания по поводу записи полей и опций индексов, сделанные выше.


Содержание  Назад  Вперед