Создание новой таблицы
procedure CreateTable; создает новую пустую таблицу. Перед созданием таблицы для данного компонента TTable нужно указать:
• имя БД - в свойстве DatabaseName;
• имя таблицы - в свойстве TableName;
• тип таблицы - в свойстве ТаblеТуре. Возможно указание следующих типов:
ttASCII
: многоколончатый текстовый файл, используемый для чтения как ТБД;ttDBase
: таблица dBASE;ttParadox
: таблица Paradox;описания полей - в свойстве FieldDefs;
описания индексов - в свойстве IndexDefs.
Для добавления описаний полей в свойство FieldDefs оно сначала очищается, а затем для каждого поля информация в FieldDefs заносится методом
procedure Add(const Name: string; DataType: TFieldType; Size: Word; Required: Boolean);
где: параметр Name определяет имя поля; параметр DataType определяет тип поля:
TFieldType = (ftUnknown, ftString, ftSmallint, ftlnteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary) ;
параметр Size определяет размер поля (если его указание необходимо) или 0 (если тип поля подразумевает его размер, например ftlnteger);
параметр Required определяет, должно ли поле в обязательном порядке содержать значение.
Для добавления описаний индексов в свойство IndexDefs оно сначала очищается, а затем для каждого поля информация в IndexDefs заносится методом procedure Add(const Name, Fields: string; Options: TIndexOptions); где параметр Name определяет название индекса; параметр Fields определяет список индексных полей. В случае нескольких полей их имена разделяются точкой с запятой. Могут быть указаны только те поля, описания которых перед этим добавлены в свойство FieldDefs; параметр Options определяет свойства индекса (см. описание метода Addlndex).
Пример.
Создать новую ТБД с именем 'NewT' в БД 'book1', состоящую из двух полей - символьного поля FIO и целочисленного Oklad, с одним первичным индексом по полю FIO:WITH Table1 do begin
// укажем БД, имя новой ТБД, тип ТБД
Active := False;
DatabaseName := 'book';
TableName := Editl.Text;
TableType := ttParadox;
// опишем поля создаваемой ТБД
WITH FieldDefs do begin
Clear;
Add('FIO', ftString, 30, False);
Add('Oklad', ftlnteger, 0, False);
END;//with FieldDefs
// опишем индексы создаваемой ТБД
WITH IndexDefs do begin
Clear;
Add('Index_FIO', 'FIO', [ixPrimary, ixUnique]) ;
END;//with IndexDefs
CreateTable; // создадим ТБД
Active := True; // откроем ее
END;//WITH Tablel
Заметим, что ТБД может быть создана также и при помощи SQL-оператора CREA ТЕ TABLE. Для "персональных" СУБД типа Paradox и dBase это альтернативный методу CreateTable способ; для "промышленных" СУБД это единственный способ динамического создания ТБД из работающего приложения, реализованного с помощью Delphi.