Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекції для 3ОТ1.doc
Скачиваний:
10
Добавлен:
21.02.2016
Размер:
16.31 Mб
Скачать

Контрольні питання

  1. Надати характеристику поняття зв’язана таблиця

  2. Розглянути властивості зв’язаних таблиць

АУДИТОРНЕ ЗАНЯТТЯ

Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних

Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи

Лекція №58 – Робота з таблицями та індексами

План заняття

  1. Характеристика поняття таблиця

  2. Характеристика поняття індекс

Прежде всего, рассмотрим несколько методов, которые позво­ляют осуществлять различные операции с таблицей БД в целом.

Метод CreateTable служит для динамического создания новой таблицы БД. Перед вызовом данного метода требуется оп­ределить структуру таблицы (т.е. описать все ее поля), задать рас­положение БД, имя и тип таблицы, а также определить индексы при необходимости. Это осуществляется путем установки соот­ветствующих свойств.

Свойство DatabaseName задает имя базы данных, которое, собственно говоря, прямо или косвенно указывает место распо­ложения БД на диске. Этому свойству можно прямо задать путь к каталогу, где содержится БД, либо указать имя заранее опреде­ленного псевдонима, либо установить в качестве значения свойст­ва пустую строку, в том случае, если БД располагается в том же каталоге, что и исполнимый файл приложения.

Имя файла, содержащего таблицу БД, задается с помощью свойства TableName.

Тип таблицы определяет свойство ТаЫеТуре, которое может иметь одно из следующих значений:

  • ttDef ault - тип таблицы определяется на основе расши­рения имени файла таблицы (если расширение отсутствует, то принимается формат Paradox);

  • ttParadox - тип Paradox;

  • ttDBase - тип dBASE;

  • ttFoxPro - тип FoxPro;

  • ttASCII - тип ASCII (обычный текст, разбитый на ко­лонки).

Свойство FieldDef s задает список полей таблицы при ее соз­дании с помощью метода CreateTable, перед вызовом которого должно быть определено хотя бы одно поле новой таблицы. Прежде всего, содержимое свойства FieldDefs должно быть удалено с помощью метода Clear, так как в нем может содержаться информа­ция о полях другой таблицы, с которой ранее был связан набор дан­ных. Затем осуществляется добавление новых полей в список. Для этого используется метод Add, который имеет такой синтаксис:

Add (const Name: String; DataType: TFieldType; Size:Word;Required: Boolean).

Здесь параметр Name задает имя поля, параметр DataType -тип поля, параметр Size - размер поля, а параметр Required определяет, должно ли поле содержать некоторое значение или может оставаться пустым.

Для определения индексов используется свойство IndexDef s. По аналогии со свойством FieldDef s, содержимое свойства IndexDefs также изначально удаляется с помощью метода Clear, а затем с помощью метода Addlndex в список добавляются новые индексы. Для удаления индексов используется метод Deletelndex. Следует иметь в виду, что в случае опреде­ления индексов после создания таблицы необходимо установить текущий индекс, обновив значения свойств IndexName или IndexFieldNames, поскольку они могут указывать на индекс предыдущей таблицы, с которой ранее был связан набор данных.

Нижеприведенный листинг содержит фрагмент программного кода, который показывает пример создания новой таблицы БД.

// Закрытие набора данных

Tablel.Active:= False; // Установка параметров таблицы Tablel.DatabaseNarae:= 'NewBD'; Tablel.TableName:= 'TableNew'; Tablel.TableType:= ttParadox; // Определение полей таблицы Tablel.FieldDefs.Clear; Tablel.FieldDefs.Add('Tab_no_true); Tablel.FieldDefs.Add('Fio', ftString, 50, true); Tablel.FieldDefs.Add('Position' ,ftString, 30, false);

Tablel.FieldDefs.Add('Salary', ftCurrency, 0, false);

// Описание индексов

Tablel.IndexDefs.Clear; Tablel.IndexDefs.Add(Tab_no', [ixPrimary, ixUnigue]);

Tablel.IndexDefs.Add('indS', 'Salary',[ixDescending]);

// Создание таблицы Tablel.CreateTable;

// Задание текущего индекса

Table1.IndexName:= >indS';

//Активизация (открытие) набора данных,

// связанного с созданной таблицей

Tablel.Active:=,True;

В результате выполнения данного кода в каталоге, определяемом псевдонимом NewBD, будет создана таблица типа Paradox с име­нем TableNew, представляющая собой список сотрудников фирмы. Таблица будет содержать четыре поля: Tabjno (табельный номер сотрудника), Fio (фамилия, имя, отчество сотрудника), Position (должность) и Salary (заработная плата). Для таблицы установлены два индекса: первый представляет собой первичный ключ (индексит рование производится по табельному номеру сотрудника), а второй называется indS и обеспечивает индексирование по убыванию раз­мера заработной платы (Salary). После создания таблицы в качест­ве текущего выбирается именно второй индекс indS.

Метод DeleteTable позволяет удалить таблицу БД в про­цессе выполнения приложения. При вызове данного метода про­исходит удаление с диска всех файлов, связанных с таблицей БД, имя и расположение которой определяется значением свойств TableName и DatabaseName соответственно. Набор данных следует закрыть перед удалением таблицы.

МетодRenameTable (const NewTableName: String) ис­пользуется для переименования таблицы БД. Параметр New­TableName задает новое название таблицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]