Работа c базами данных в DELPHI: Методические указания к разработке проектов в DELPHI, страница 4

4. Компоненты доступа к данным

Компоненты доступа к данным являются невизуальными. В этом разделе мы рассмотрим компоненты: Table и Query. Эти компоненты являются производными от класса TDBDataSet – потомка класса TDataSet. Они имеют схожие с базовыми классами характеристики и поведение, но каждый из них имеет свои особенности. Здесь мы рассмотрим наиболее общие характеристики наборов данных.

Расположение БД, с таблицами которой будет работать приложение, определяет свойство DatabaseName типа String. Значением свойства является имя каталога, в котором находятся таблицы базы данных. Для компонента Table использование свойства DatabaseName является единственной возможностью задать местонахождение таблиц БД.

Для выполнения операций с наборами данных используется два способа доступа к данным: навигационный и реляционный. Навигационный способ доступа предполагает обработку каждой отдельной записи набора данных. При этом способе каждый набор данных имеет невидимый указатель текущей записи. Поля текущей записи доступны для просмотра и редактирования.

Реляционный способ доступа основан на обработке группы записей. Если требуется обработать одну запись, обрабатывается группа, состоящая из одной записи. При реляционном способе доступа используются SQL-запросы. Реляционный способ доступа к данным в будущем приложении будет реализован с помощью компонента Query.

Наборы данных могут находиться в открытом или закрытом состоянии. Для изменения состояния набора данных используется свойство Active типа Boolean. Если свойству Active соответствует значение True, то набор данных открыт. Открытый компонент Table содержит набор данных, соответствующий полям таблицы, связанной с ним через свойство TableName. Для открытого компонента Query набор данных соответствует результату выполнения SQL-запроса, содержащегося в свойстве SQL этого компонента.

Если свойство  Active имеет значение False (по умолчанию), то набор данных закрыт, и его связь с БД разорвана.

Для связи между набором данных и визуальными компонентами используется промежуточное звено, называемое источником данных. В Delphi источник данных представлен компонентом DataSourse. Для указания набора данных, с которым связан источник данных, служит его свойство DataSet. Визуальные компоненты связываются с источником данных через свои свойства  DataSourse. Обычно эта связь устанавливается на этапе проектирования в Инспекторе объектов.

5. Визуальные компоненты

Чтобы отобразить поле текущей записи служат компоненты DBEdit, а для отображения и выбора полю нового значения - различные списки: компоненты DBListBox, DBComboBox, DBLookupComboBox и DBLookupListBox.

Для вывода записей набора данных в табличном виде удобно использовать сетку, представленную в Delphi компонентом DBGrid. Внешний вид сетки соответствует внутренней структуре таблицы БД и набора данных, при этом строке сетки соответствует запись, а столбцу – поле. У сетки DBGrid числом строк управлять нельзя, так как она отображает все записи, имеющиеся в наборе данных.

Основным свойством сетки является свойство Columns, которое представляет собой массив (коллекцию) объектов Column, описывающих отдельные столбцы сетки. Свойство SelectedIndex типа Integer задает номер текущего столбца в массиве Columns, а свойство SelectedField указывает на объект типа TField, которому соответствует текущий столбец сетки. Свойство FieldCount содержит число видимых столбцов сетки, а свойство Fields позволяет получить доступ к ее различным столбцам.

Свойства Color и FixedColor задают, соответственно, цвета сетки и ее фиксированных элементов. Свойство TitleFont определяет шрифт, используемый для вывода заголовков столбцов. Доступ к настроечным параметрам сетки осуществляется через комплексное свойство Options.

На рисунке 5.1 представлен компонент DBGrid при работе приложения.

Рисунок 5.1 –  Пример использования компонента DBGrid

6. Пример разработки приложения

Пусть требуется создать проект приложения для контроля успеваемости студентов академической группы по трем дисциплинам. Напомним, что в нашем Вузе преподаватель выставляет аттестацию в определенные сроки. Обычно, аттестаций – три в семестр. В академической группе не более тридцати студентов