- •Базы данных.
- •Проектирование базы данных
- •Шаги проектирования базы данных
- •Создание таблиц базы данных
- •Компоненты для работы с бд
- •Создание простейшего приложения
- •Режимы наборов данных
- •Команды навигации
- •Визуальные компоненты для работы с данными
- •Обзор компонент
- •Работа с полями таблицы
- •Создание статических полей
- •Задание ограничений на вводимые значения
- •Компонент Table
- •Сортировка и фильтрация
- •Поиск записей
- •If Table1.Locate ('Number',123,[]) {опции поиска отключены}
- •If not Table1.FindKey([EditGroup.Text,EditName.Text]){ищем соответствующие значения}
- •Связывание таблиц
- •Компонент Query
- •Чтение данных из таблиц (select)
- •Модификация записей (update, insert, delete)
- •Insert into Tovar.Db (Name, Price, Count) values (’Яблоки’, 20, 10)
- •Некоторые функции языка sql
- •Компоненты для построения отчетов
- •Основные свойства компоненты QuickRep
- •Методы компоненты QuickRep:
- •Свойства компоненты qrBand:
- •Создание простого отчета
- •Включение выражений в отчет
- •Отображение системной информации
- •Группировка данных в отчете
- •Построение отчета для связанных наборов данных
- •Комбинированный отчет
- •Упражнения:
-
Создание статических полей
По умолчанию при каждом открытии набора данных для каждого поля набора автоматически создается свой элемент списка Fields. Это случай динамического создания списка полей. Недостатком использования динамических полей является то, что нельзя ограничить состав полей или определить вычисляемые поля. Другой подход состоит в том, что на этапе разработки приложения при помощи Редактора полей определяются статические поля, которые позволяют:
-
определить вычисляемые поля, значения которых вычисляются, используя значения других полей;
-
определить поля выбора (подстановочные поля);
-
ограничить состав полей набора данных;
-
изменить порядок полей набора;
-
задать формат отображения или редактирования данных поля набора.
Однако при модификации структуры таблицы, например, при удалении поля, придется соответственно модифицировать и статические поля, иначе возникнет исключительная ситуация.
В случае, если определено хотя бы одно статическое поле, динамические поля создаваться не будут.
Для запуска Редактора полей следует дважды щелкнуть мышью на компоненте Table или Query. Для создания статического поля следует вызвать контекстное меню Редактора полей (щелкнуть по нему правой кнопкой мыши) и выбрать пункт Add Fields (свойства DatabaseName и TableName должны уже указывать на таблицу). Затем выбрать из списка необходимые поля и нажать Ok. Для удаления статического поля – выберете его в Редакторе и нажмите на клавишу Delete. Для изменения порядка полей используются клавиши Ctrl и стрелки вверх/вниз. После создания статического поля изменить его свойства можно в Object Inspector.
Для создания вычисляемого поля (Calculated)в контекстном меню Редактора выберите NewField. В появившемся окне задайте имя поля (Name), его тип (Type) и, при необходимости, размер (Size). Установите Field Type в Calculated и нажмите Ok. Далее для набора данных, содержащего поле (не для самого поля!), напишите обработчик сообщения OnCalcFields, в котором присвойте значения всем вычисляемым полям набора. Например:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
with Table1 do
FieldByName('PriseAll').AsCurrency := FieldByName('Prise').AsCurrency * FieldByName('Count').AsInteger;
end;
Поле выбора (Lookup) предоставляет возможность выбора одного значения из предлагаемого списка и автоматического занесения информации в заданное поле модифицируемой записи. Оба набора данных связываются по полям связи.
Например, есть таблица Table2, хранящая номер (N), название (NameBook) и т.д. какой-то книги, а в другой таблице Table1 ссылка на книгу хранится по номеру (N_Book). Требуется подставлять номер книги во вторую таблицу, выбирая его по названию. Для этого в Редакторе полей второй таблицы создайте Lookup-поле: в контекстном меню Редактора выберем New Field, в появившемся окне задайте - имя поля Book, тип String и размер 25; установите Field Type в Lookup. Далее задайте поля связи: Кеу Fields – N_Book, Dataset - имя компоненты Table2 первой таблицы, Lookup Keys - N и Result Field - NameBook.
Тогда при запуске программы в новом столбце Book появится возможность выбора книги из раскрывающегося списка.