- •Базы данных в Delphi Оглавление
- •Глава I. Базы данных в Delphi 3
- •Глава II. Наборы данных 11
- •Глава I. Базы данных в Delphi
- •1.1. Ведение в базы данных
- •1.2. Таблицы баз данных.
- •1.3. Таблицы формата dBase и Paradox
- •Сравнительная характеристика dBase и Paradox
- •1.4. Практическая работа
- •1.5. Самостоятельная работа
- •Глава II. Наборы данных
- •2.1. Набор данных
- •2.2. Практическая работа
- •2.3. Самостоятельная работа
- •2.4. Режимы наборов данных
- •2.5. Практическая работа
- •2.6. Перемещение по записям набора данных
- •2.7. Практическая работа
- •2.8. Доступ к полям
- •2.9. Практическая работа
- •2.10. Практическая работа
- •2.11. Способы задания состава полей набора данных
- •Редактор полей
- •2.12. Вычисляемые поля
- •2.13. Практическая работа №7
- •Глава III. Индексирование баз данных
- •3.1. Установка текущего индекса
- •3.2. Сортировка набора данных
- •3.3. Практическая работа
- •Глава IV. Фильтрация записей
- •4.1. Фильтрация по выражению
- •4.2. Практическая работа
- •4.3. Практическая работа
- •4.4. Фильтрация по диапазону
- •4.5. Самостоятельная работа
- •Глава V. Поиск записей в наборе данных.
- •5.1. Поиск записей
- •5.2. Поиск записей по нескольким полям.
- •5.3. Практическая работа
- •Глава VI. Модификация набора данных
- •6.1. Редактирование записей
- •6.2. Добавление записей
- •6.3. Удаление записей
- •6.4. Практическая работа
- •Глава VII. Работа со связанными таблицами
- •7.1. Организация связей между таблицами
- •7.2. Практическая работа
- •7.3. Самостоятельная работа
- •Глава VIII. Работа с отчетами
- •8.1. Объект QuickRep
- •8.2. Компоненты, размещаемые в полосе
- •8.3. Практическая работа
2.12. Вычисляемые поля
Для создания статического вычисляемого поля нужно:
В окне создания нового статического поля задать имя (поле Name) и тип (поле Type) поля, выбрать переключатель Calculated.
Написать обработчик события OnCalcFields для НД Table, в котором производится расчет значения вычисляемого поля.
2.13. Практическая работа №7
Создать для таблицы Tovar.db два вычисляемых поля Total (общая стоимость товара в рублях) и TotalUE (общая стоимость товара в у.е. (в $)).
Значения полей Total и TotalUE вычисляются по следующим правилам:
Total=Kolvo*Cena
TotalUE= Total/30.36
При расчете стоимости в условных единицах предполагается, что обменный курс составляет 30 руб. 36 коп.
Расположите на форме компоненты Table1, DataSource1, DBGrid1 для работы с БД (для таблицы Tovar.db) и свяжите их.
Сделайте поля Tovar, Kolvo, Cena набора данных Table1статическими.
В контекстном меню Редактора полей выберите пункт New Field. В поле Name задайте имя поля Total. В списке Type выберите значение Float. Установите переключатель Calculated в группе переключателей Field type. Нажмите ОК.
Произведите аналогичные действия для поля TotalUE.
Закройте Редактор полей.
Напишите обработчик события OnCalcFields для НД Table1:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
Table1Total.AsFloat:=Table1.FieldByName('Kolvo').AsFloat*
Table1.FieldByName('Cena').AsFloat;
Table1TotalUE.AsFloat:=Table1Total.AsFloat/30.36;
end;
Чтобы отформатировать значение поля TotalUE можно написать следующий обработчик события OnCreate для формы:
procedure TForm1.FormCreate(Sender: TObject);
begin
Table1TotalUE.DisplayFormat:='###.##';
end;
Запустите программу и в компоненте DBGrid1 вы увидите вычисляемые поля Total и TotalUE.
Глава III. Индексирование баз данных
В таблицах могут определяться ключи и индексы. Ключ – это комбинация полей, данные в которых однозначно определяют каждую запись в таблице. Простой ключ состоит из одного поля, составной из нескольких полей. Поля, по которым построен ключ, называют ключевыми. Чтобы определить ключевое поле, нужно запустить программу Database Desktop, открыть таблицу, для которой строится ключ, перейти в окно изменения структуры таблицы и в этом окне в поле Key напротив имени поля поставить символ «*» клавишей [Пробел].
Индекс, как и ключ, строится по полям таблицы, однако, он может допускать повторение значений составляющих его полей. Поля, по которым построен индекс, называют индексными. Простой индекс состоит из одного поля, а составной (сложный) – из нескольких полей.
Индексы при создании именуются. Создание индекса называют индексированием таблицы.
Использование ключей и индексов позволяет:
однозначно идентифицировать записи;
избегать дублирования значений в ключевых полях;
увеличивать скорость доступа к данным (поиск данных);
выполнять сортировку записей в таблицах;
устанавливать связи между отдельными таблицами БД и т. д.
Для одной таблицы можно создать несколько индексов. В каждый момент времени один из них можно сделать текущим (активным). При существовании нескольких индексов таблица может не иметь текущего индекса.
Задание индекса сводится к определению:
состава полей;
параметров;
имени.
Для задания индексов надо:
Запустить Database Desktop;
Открыть таблицу, которую необходимо проиндексировать;
Перейти в окно создания структуры таблицы (Table/Restructure);
В комбинированном списке Table properties: выбрать пункт Secondary Indexes (вторичные индексы);
Нажать на кнопку Define (определить);
В появившемся окне Define Secondary Index (задание вторичного индекса) задать состав полей и параметры индекса:
Unique (Уникальный) – индекс требует для составляющих его полей не повторяющихся значений;
Case sensitive (Зависящий от условий) – для полей строкового типа учитывается регистр символов;
Descending (Нисходящий) – сортировка выполняется в порядке убывания значений.
Нажать кнопку ОК, появится окно Save Index As (Сохранить индекс), в котором указывается имя индекса (indИмяПоля, например, indTovar, indKolvo, indTovarCena и т.д.). В имени индекса указывается имя поля, по которому строится индекс.
После повторного нажатия кнопки ОК сформированный индекс добавляется к таблице и его имя появляется в списке индексов.
Чтобы изменить индекс, нужно в окне изменения структуры таблицы в списке Table properties выбрать пункт Secondary Indexes, выделить имя изменяемого индекса и нажать кнопку Modify (Изменить). Для удаления индекса, нужно выделить имя удаляемого индекса и нажать кнопку Erase (Удалить).
