Система Delphi содержит богатую библиотеку компонентов, значительно упрощающих разработку приложений для баз данных. Компоненты освобождают программиста от работы на нижнем уровне, позволяют быстро создавать надёжные приложения.
В первой статье, посвящённой этой теме, я привела пример создании приложения, работающего с БД, в котором использовалось лишь три компонента Table (вкладка BDE), DataSource (Data Access), DBGrid (Data Controls). Сегодня поясню, для чего они нужны.
Сначала, поговорим о вкладках, на которых они располагаются:
BDE – содержит компоненты для создания приложений, использующих BDE;
Data Access – это вкладка, содержащая не визуальные компоненты, предназначенные для организации доступа к данным;
Data Controls – на ней располагаются визуальные компоненты для отображения данных.
Следует также знать, что компоненты для работы с базами данных можно разделить на три группы:
множества данных (data sets);
визуальные компоненты баз данных (dataaware controls)
источники данных (data sources).
Множества данных – это не визуальные компоненты, которые взаимодействуют с BDE и обеспечивают доступ к данным в таблицах. Наиболее важные из них – компоненты Table и Query.
Визуальные компоненты баз данных – это управляющие элементы пользовательского интерфейса для просмотра и редактирования данных. Многие из них дублируют обычные управляющие компоненты: DBGrid, DBEdit, DBCheckBox, DBRadioGroup, DBImage и др.
Источники данных – это не визуальные компоненты, исполняющие роль трубопроводов между множествами данных и визуальными компонентами баз данных. Используя введённые понятия, можно уточнить структуру приложения, осуществляющего доступ к данным через BDE (DataSource) (рис. 1).
Рис. 1. Структура приложения БД, использующего технологию BDE.
Компонент Table
Компонент Table (табл. 1) обеспечивает доступ к таблицам базы данных, создавая набор данных, структура полей которого повторяет таблицу БД. Набором данных называют записи одной или нескольких таблиц, переданные в приложение в результате активизации компонента доступа к данным.
Таблица 1. Важнейшие свойства компонента Table
Свойство
Описание
Active
Если равно true, то таблица открыта, если false — то закрыта.
CachedUpdates
Если равно true, то операция по модификации сразу не выполняются, а кэшируются (накапливаются). Для физического выполнения скопировавшихся операция вызывается метод ApplyUpdates.
DataBaseName
Задаёт базу данных, которой принадлежит таблица. Содержит псевдоним или путь к файлам, составляющим базу данных.
Exclusive
Если равно true, то всем остальным пользователям таблицы будет отказано в доступе.
Filter
Булевское выражение, задающее фильтр для записей.
Filtered
Включает (true) или выключает (false) фильтрацию записей.
FilterOptions
Параметры, определяющие режимы фильтрации.
IndexFieldNames
Имена индексированных полей.
IndexFiles
Список индексных файлов, используемых при работе с таблицами в формате dBase.
IndexName
Вторичный индекс таблицы. Свойства IndexName и IndexFieldNames являются взаимоисключающими.
MasterFields
Содержит имена полей, по которым данная подчинённая таблица связывается с главной таблицей.
MasterSource
Указывает источник данных (DataSource) главной таблицы, если данная таблица является подчинённой.
ReadOnly
Запрещает/разрешает (true/false) модификацию данных в таблице.
TableName
Имя таблицы БД.
TableType
Физический тип таблицы. Это свойство игнорируется при работе с серверной базой данных.
С помощью компонента Table можно организовать доступ к любой записи таблицы или их подмножеству. Компонент Table содержит все необходимые свойства, события и методы для создания, удаления, модификации, сортировки, фильтрации и поиска записей в таблице.
Компонент DataSource Компонент DataSource (табл. 2) обеспечивает взаимодействие набора данных с компонентами для отображения данных. С каждым компонентом доступа к данным должен быть связан как минимум один компонент DataSource. С одним компонентом DataSource может быть связано несколько визуальных компонентов. Таблица 2. Важнейшие свойства компонента DataSource
Свойство
Описание
AutoEdit
Определяет, переходит ли связанная с источником данных таблица БД в режим редактирования записи, если пользователь начинает печатать символы в одном из управляющих элементов, связанных с источником данных. Если true, то переходит.
DataSet
Указывает компонент (Table или Query), поставляющий данные из таблицы.
Enabled
Определяет, обновляется ли содержимое управляющих элементов, связанных с источником данных, при изменении текущей записи в таблице. Позволяет включить (true) или исключить (false) все подсоединённые визуальные компоненты.
Компонент DBGrid Визуальный компонент DBGrid (табл. 3) предназначен для организации табличного просмотра и редактирования данных. Внешний вид данных, отображаемый DBGrid, по умолчанию соответствует структуре набора данных. Компонент DBGrid часто называют сеткой.
Для перемещения по записям используются полосы прокрутки и клавиши управления курсором. Для изменения данных достаточно установить курсор в нужную ячейку и ввести другое значение. Новая пустая строка создаётся в позиции указателя нажатием на клавишуInsert. Чтобы изменения, сделанные при редактировании и добавлении записи, были внесены в таблицу, необходимо на жать на клавишу Enter или перейти на другую строку. До того как данные были переданы в таблицу, можно клавишей Esc отменить изменения. Для удаления записи используется комбинация клавиш Ctrl+Delete.
Таблица 3. Важнейшие свойства компонента DBGrid
Свойство
Описание
Align
Определяет способ выравнивания внутри владельца.
Columns
Содержит список объектов, описывающих колонки в таблице.
DataSource
Указывает источник (компонент DataSoyrce), из которого извлекаются отображаемые данные.
DefaultDrawing
DefaultDrawing Если равно true, то ячейки таблицы отображаются в обычном стиле. Если значение равно false, то в обработчике события OnDrawColumnCell можно определить свой способ рисования ячеек.
FixedColor
Задаёт цвет фиксированных строк и колонок таблицы.
Options
Определяет режимы работы компонента.
TitleFont
Определяет шрифт, используемый при отображении названий колонок.
В этой статье я познакомлю вас ещё с несколькими основными визуальными компонентами баз данных. И сразу рассмотрим их работу на практическом примере.