Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Компонент TTable

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Итак, ми з ще однією способом створення таблиць — способом, використовує метод CreateTable класу TTable. Використання даного способу додасть Вашому додатку максимальну гнучкість, і… Ви зможете будувати локальні таблиці «на льоту». Супутнім методом є метод AddIndex класу TTable, дозволяє створювати індекси для вже існуючої таблиці. Підкреслимо вкотре, що це спосіб застосуємо лише локальних… Читати ще >

Компонент TTable (реферат, курсова, диплом, контрольна)

Компонент TTable..

Обзор Создание таблиць з допомогою компонента TTable.

Заключение

.

Обзор У цьому невеличкому уроці ми завершимо вивчення можливостей створення таблиць. Як ви пам’ятаєте, ми можемо вже освоїли два способі створення таблиць — з допомогою утиліти Database Desktop, що входить у поставку Delphi (урок 11) і з допомогою SQL-запросов (урок 12), які можна використовувати як і WISQL (Windows Interactive SQL — клієнтська частина Local InterBase), і у компоненті TQuery. Нині ми розглянемо, як і створювати локальні таблиці як виконання за допомогою компонента TTable. Создание таблиць з допомогою компонента TTable

Для створення таблиць компонент TTable має метод CreateTable. Цей метод створює нову порожню таблицю заданої структури. Він (процедура) може створювати лише локальні таблиці формату dBase чи Paradox.

Компонент TTable можна помістити на форму як проектування або створити динамічно під час виконання. У разі перед використанням його потрібно створити, наприклад, з допомогою наступній конструкции:

· var.

Table1: TTable;

Table1:=TTable.Create (nil);

Перед викликом методу CreateTable необхідно встановити значення свойств.

TableType — тип таблиці DatabaseName — база даних TableName — ім'я таблиці FieldDefs — масив описів полів IndexDefs — масив описів індексів.

Свойство TableType має тип TTableType яких і визначає тип таблиці базі даних. Якщо це властивість встановлено в ttDefault, тип таблиці визначається по розширенню файла, що містить цю таблицу:

Розширення .DB чи ні розширення: таблиця Paradox Розширення .DBF: таблиця dBASE Розширення .TXT: таблиця ASCII (текстовий файл).

Если значення властивості TableType не одно ttDefault, створювана таблиця завжди матиме встановлений тип, незалежно від расширения:

ttASCII: текстовий файл ttDBase: таблиця dBASE ttParadox: таблиця Paradox.

Свойство DatabaseName визначає базі даних, у якій перебуває таблиця. Це властивість може содержать:

BDE алиас директорій для локальних БД директорій й ім'я файла бази даних для Local InterBase локальний алиас, певний через компонент TDatabase.

Свойство TableName визначає ім'я таблиці бази данных.

Свойство FieldDefs (має тип TFieldDefs) для існуючої таблиці містить інформацію про полях таблиці. Цю інформацію доступна лише у режимі виконання і зберігається як масиву примірників класу TFieldDef, зберігають даних про фізичних полях таблиці (т.а. вычисляемые лише на рівні клієнта поля немає свого об'єкта TFieldDef). Кількість полів визначається властивістю Count, а доступом до елементам масиву здійснюється через властивість Items:

· property Items[Index: Integer]: TFieldDef;

При створенні таблиці, перед викликом методу CreateTable, потрібно сформувати ці елементи. І тому у класу TFieldDefs є метод Add:

· procedure Add (const Name: string; DataType: TFieldType; Size: Word; Required: Boolean);

Параметр Name, має тип string, визначає ім'я поля. Параметр DataType (тип TFieldType) позначає тип поля. Він може мати одна з наступних значень, зміст яких ясний з їхньої наименования:

· TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftBlob, ftMemo,.

ftGraphic);

Параметр Size (тип word) є розмір поля. Цей параметр має сенс тільки для полів типу ftString, ftBytes, ftVarBytes, ftBlob, ftMemo, ftGraphic, розмір яких може дуже варіюватися. Поля інших типів мають суворо фіксований розмір, отже даний параметр їм не береться до уваги. Четвертий параметр — Required — визначає, чи може полі мати порожній значення під час запису до бази даних. Якщо значення цієї параметра — true, то полі є «потрібним», тобто. неспроможна мати порожнього значення. Інакше полі перестав бути «потрібним» і, отже, допускає запис значення NULL. Зазначимо, що у документації по Delphi і online-справочнике допущено помилку — там не згадується четвертому параметрі для методу Add.

Если Ви хочете індексувати таблицю за одним або декільком полях, використовуйте метод Add для властивості IndexDefs, яке, як і здогадатися, є також об'єктом, тобто. примірником класу TIndexDefs. Властивість IndexDefs для існуючої таблиці містить інформацію про індексах таблиці. Ця інформація доступна лише у режимі виконання і зберігається як масиву примірників класу TIndexDef, зберігають дані про індексах таблиці. Кількість індексів визначається властивістю Count, а доступом до елементам масиву здійснюється через властивість Items:

· property Items[Index: Integer]: TIndexDef;

Метод Add класу TIndexDefs має наступний вид:

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

Параметр Name, має тип string, визначає ім'я індексу. Параметр Fields (також має тип string) позначає ім'я поля, що має бути индексировано, тобто. ім'я индексируемого поля. Складовою індекс, використовує кілька полів, може бути поставлене списком імен полів, розділених точкою з коми «;», наприклад: ‘Field1;Field2;Field4'. Останній параметр — Options — визначає тип індексу. Він може мати набір значень, описуваних типом TIndexOptions:

· TIndexOptions = set of (ixPrimary, ixUnique, ixDescending,.

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]);

Add («I_Age », «Age », [ixCaseInsensitive]);

end;

CreateTable;

end;

Індекси можна згенерувати але тільки під час створення таблиці. Щоб згенерувати індекси для існуючої таблиці, потрібно викликати метод AddIndex класу TTable, набір параметрів якого повністю повторює набір параметрів для методу Add класу TIndexDefs:

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

При цьому методу AddIndex справедливі все зауваження щодо записи полів і опцій індексів, зроблені выше.

Заключение

Итак, ми з ще однією способом створення таблиць — способом, використовує метод CreateTable класу TTable. Використання даного способу додасть Вашому додатку максимальну гнучкість, і… Ви зможете будувати локальні таблиці «на льоту». Супутнім методом є метод AddIndex класу TTable, дозволяє створювати індекси для вже існуючої таблиці. Підкреслимо вкотре, що це спосіб застосуємо лише локальних таблиць. Більше загальний спосіб полягає у використанні SQL-запросов, який ми розглядали на уроці 12.

Показати весь текст
Заповнити форму поточною роботою