После переноса компонент на форму производится настройка свойств объектов с использованием ObjectInspector.
Основные свойства объекта Table:
Name - имя объекта используемое в программе (является указателем, заданным в соответствии с шаблоном компоненты); DatabaseName - имя псевдонима (alias) базы данных (выбирается из списка, если таблица и проектнаходятся в одном каталоге необязательный параметр!); TableName - имя файла таблицы (выбирается из списка, если указан псевдоним БД или файл с таблицей и проект находятся в одном каталоге); Active - позволяет отображать данные из таблицы в процессе разработки и автоматически открывает файл при выполнении (когда установлено true).
Служебная компонента DataSource выполняет роль связующего звена и имеет следующие свойства:
Name - имя объекта используемое в программе (является указателем, заданным в соответствии с шаблоном компоненты); DataSet - имя таблицы связанной с данным объектом (выбирается из списка).
Объект Table позволяет приложению работать с таблицей, но для отображения данных на экране необходимо использовать компоненту DBGrid.
Основные свойства объекта DBGrid:Name - имя объекта используемое в программе (является указателем, заданным в соответствии с шаблоном компоненты); DataSource – имя источника данных, посредством которого осуществляется связь объекта DBGrid с объектом Table (выбирается из списка).
Объект DBGrid позволяет не толькоотображать данные, но и управлять ими (перемещаться по записям, добавлять и редактировать записи и т.д.). Однако ряд действий эффективней выполнять с использованием объекта DBNavigator.
Основные свойства объекта DBNavigator:Name – имя объекта (указатель); DataSource – имя источника данных, посредством которого осуществляется управление компонентой Table, выбирается из списка (рис. 6).
Рис. 6 Свойства компонент Table и DataSource
На рис. 7 показана структурная схема взаимодействия компонент приложения для работы с базой данных.
Рис. 7. Взаимодействие компонент приложения
После размещения на форме всех необходимых компонент и настройки их свойств получим макет приложения, показанный на рис. 8.Рис. 8 Макет формы приложения для работы с таблицей stud
После компиляции и запуска приложения возможна работа с исходной однотабличной БД – ввод, сохранение, удаление и редактирование данных, перемещение по записям таблицы. Вводимая в поля таблицы информация должна соответствовать указанному при создании таблицы типу поля и не превышать длину поля (в этом случае ввод символов за границей длины поля будет невозможен).
Рис. 9 Внешний вид работающего приложения
Структура проекта приложения
При работе с БД можно выделить три группы файлов, которые создаются интегрированной средой и содержат программный код, необходимый для компиляции проекта:
1. проектные файлы (приводятся имена, используемые по умолчанию для первого созданного в среде проекта):
Project1 .dof - проектный файл компоновки, описывающий все файлы, входящие в проект;
Project1.dpr - файл, отвечающий за запуск приложения;
Project1.res - файл ресурсов (курсоры, пиктограммы и т.д.).
2. файлы, относящиеся к формам приложения (имена, используемые по умолчанию Delphi для первой созданной формы):
Unit1 .pas - исходные тексты программы, содержащие обработчики событий класса TForm1;
Unit1 .dfm - файл с описанием формы, её визуальных объектов и их свойств.
3. Файлы данных: файлы таблиц, индексов и т.д.
При использовании формата dBaseforWindows файлы таблиц имеют расширение *.dbf, а файлы индексов *.mdx.
Пример реализации БД о студентах
Постановка задачи: необходимо организовать хранение информации о студентах: № зачётной книжки, шифр группы, ФИО, год рождения, пол, предмет, среднюю оценку по предмету.
А. Определим структуру базы и введём условные обозначения:
Zach – номер зачётной книжки, целое 6 знаков;
Group – шифр группы, символьное, 4 символа;
Fam – фамилия символьное, 20 символов;
Nam – имя символьное, 20 символов;
Par – отчество символьное, 20 символов;
Year_b – год рождения, целое, 4 знака;
Sex – пол символьное, 1 символ;
Pred – предмет символьное, 10 символов;
Oz – оценка целое, 4 целых знака, 2 десятичных.
В. Разработаем таблицу с соответствующей структурой. Для этого необходимо запустить утилиту DatabaseDesktop, выбрать опции меню File->New и заполнить соответствующие ячейки диалога задания структуры в соответствии с выбранной структурой (пункт А, рис. 2). После этого необходимо сохранить таблицу на диске в своём рабочем каталоге.
С. Создадим Windows-приложение для работы с данными. Для этого необходимо запустить среду BorlandDelphi, выбрать опции меню File->New->Application, после чего откроется новый проект приложения. Далее следует перенести на макет формы приложения компоненты Table, DataSource, DBGrid, DBNavigator и настроить их свойства в соответствии с табл. 2.
Таблица 2. Свойства компонент приложения
Компонента | Свойство | Значение |
Table | Name | Table1 |
TableName | Stud.dbf | |
DataSource | Name | DataSource1 |
DataSet | Table1 | |
DBGrid | Name | DBGrid1 |
DataSource | DataSource1 | |
DBNavigator | Name | DBNavigator1 |
DataSource | DataSource1 |
Внешний вид макета формы приложения должен соответствовать рис. 8.
После этого необходимо откомпилировать проект и осуществить ввод данных в таблицу (рис. 9).
ЛАБОРАТОРНАЯ РАБОТА №2
СОЗДАНИЕ WINDOWS-ПРИЛОЖЕНИЯ ДЛЯ РАБОТЫ С БАЗОЙ ДАННЫХ. ГЕНЕРАЦИЯ ОТЧЕТОВ.
Обработка информации однотабличной базы данных
Помимо хранения, редактирования, обновления и анализа данных в базе данных (БД), на практике часто возникает задача осуществления разного рода расчётов и вычислений с использованием хранящейся в БД информации. Например, для базы данных, хранящей информацию о студентах учебного заведения (см. методические указания к лабораторной работе №1) может возникнуть задача расчёта средней оценки студента по конкретному предмету или расчёта успеваемости группы. Поскольку требуемые расчёты могут быть довольно сложные, необходимо использование программных пакетов разработки приложений, объединяющих в себе как удобные средства доступа к БД различных форматов, так и гибкий язык программирования. С этой точки зрения наиболее удобным инструментом является среда визуальной разработки Windows-приложений Borland Delphi, обеспечивающая доступ к информации БД практически всех существующих форматов и возможность её обработки, используя язык Delphi.
Визуальная навигация и управление данными в BorlandDelphi производится с помощью компонент просмотра (DBGrid) и управления (DBNavigator), которые позволяют перемещаться по записям, удалять, добавлять или модифицировать их и т.д.
Программная навигация по записям таблицы возможна использованием соответствующих методов. Компонента Table основана на базовом классе TTable, в который инкапсулированы следующие методы навигации:
Next - перемещение указателя на следующую запись;
Prior - перемещение указателя на предыдущую запись;
First - перемещение указателя на первую запись таблицы;
Last - перемещение указателя на последнюю запись таблицы.
Например, если создан объект Table, свойством Name которого является значение Table1, то оператор
Table1.First;
переместит указатель на первую запись. Перечисленные методы позволяют последовательно перемещать указатель записи по таблице. Для определения последней записи таблицы используется ее свойство Eof, которое принимает значение true, когда указатель установлен на последней записи.
Фрагмент программы
Tabl1.Open;
Table1.First;//перемещение на начало таблицы
WhilenotTable1.EOFdo//проверка на конец файла
Table1.Next;//перемещение на следующую запись
Table1.Close;
показывает, как организовать последовательный просмотр всех записей таблицы.
Для программного управления записями таблицы в класс TTable инкапсулированы следующие методы управления:
Delete - удаление текущей записи с позиционированием указателя на следующую запись;
Insert - добавление пустой записи в таблицу;
Edit – перевод таблицы в режим редактирования;
Post – сохранение изменений в таблице.
Например, фрагмент программы
Table1.Last;
Table1.Delete;
Перечисленные методы позволяют оперировать с целыми записями таблицы.
При обработке данных таблицы часто требуется программно получить значение определенного поля записи или записать в него новое значение. Например, в БД студентов учебного заведения необходимо поменять оценку в одной записи, не изменяя значения остальных полей. Подобные операции с полями таблицы требуют создания объектов, указывающих на соответствующие поля.
Для создания подобных объектов нужно выполнить следующую последовательность действий:
- нажать правой клавишей мыши на соответствующем объекте Table;
- в выведенном меню выбрать опцию FieldsEditor, в результате чего на экране появится диалог редактирования полей;