Лекция 5.4. Использование БД в Delphi
Для использования БД в среде Delphi обычно используют три группы компонентов, которые можно кратко охарактеризовать следующим образом:
· Визуальные компоненты (ВК) – компоненты для отображения и редактирования информации хранящейся в БД.
· Наборы данных (НД) – являются представителями физических таблиц БД в Delphi. Выполняют основную работу по обработке данных и предоставляют их источникам данных. Являются потомками класса TDataSet;
· Источники данных (ИД) - используется в качестве интерфейса для соединения НД с компонентами для отображения данных. Является представителем класса TDataSource.
Для использования компонентов отображения и редактирования данных обычно используется схема связывания представленная на рисунке 5.4.1. Кроме этого, ИД используются для связи НД между собой, например, для реализации связи по принципу главный- детальный.
Для подключения к ИД все визуальные компоненты имеют свойство DataSource: TDataSource, в свою очередь все ИД имеют свойство для подключения к НД и используют для этого свойство DataSet: TDataSet.
Рисунок 5.4.1 - Схема связывания компонентов для использования БД
Источник данных
Компонент располагается в группе DataAccess. Класс TDataSource является связующим звеном и содержит небольшое количество свойств, методов и событий, которые, как правило, используются достаточно редко. Основные свойства класса TDataSource:
· AutoEdit: Boolean – управляет автоматическим переводом НД в режим редактирования. Если значение true, то при попытке пользователя изменить значение данных в визуальном компоненте, связанном с ИД, НД автоматически перейдет в режим редактирования (dsEdit);
· DataSet: TDataSet – указывает на НД с которым связан ИД;
· Enabled: Boolean – управляет отображением данных в визуальных компонентах связанных с ИД;
· State: TDataSetState – содержит текущее состояние НД.
Основные события класса:
· OnDataChange – вызывается при перемещении курсора НД, связанного с ИД, если в текущую запись были внесены изменения;
· OnStateChange – вызывается при изменении состояния НД, связанного с ИД;
· OnUpdateData – вызывается перед сохранением изменений в БД.
Модуль данных
Модуль данных (класс TDataModule) является контейнером для размещения невизуальных компонентов доступа к данным, таких как TTable, TQuery, TADOTable, TADOQuery, TDataSource и т.д. Модули данных позволяют отделить задачи связанные с логикой обработки данных БД от задач связанных логикой интерфейса пользователя. Другими словами задачи связанные с доступом к данным и их обработкой решаются внутри модуля данных, а задачи связанные с обслуживанием пользовательского интерфейса реализуются в нутрии форм. Модуль данных должен стать неким «черным ящиком». Его свойства и методы будут являться «рычагами» для доступа и управления данными.
Модуль данных создается с помощью команды главного меню File- New- DataModule. При этом открывается окно редактора модуля данных, содержащее в нижней части две вкладки: Cod и Diagram (см. рисунок 5.4.2).
Рисунок – 5.4.2. Окно модуля данных и редактора кода
Вкладка Diagram может служить служит для отображения диаграмм связей между компонентами доступа к данным (используется, если требуется установить синхронизацию между таблицами по принципу главный- детальный), размещенными в модуле данных, причем на этой вкладке можно визуально устанавливать связи между компонентами. Тип связи выбирается нажатием кнопки на вертикальной панели инструментов. На диаграмму можно также добавлять комментарии.
Рассмотрим события модуля данных:
· OnCreate – генерируется при создании модуля данных и может использоваться для включения НД расположенных на нем;
· OnDestroy – генерируется перед разрушением модуля данных и может использоваться для отключения НД расположенных на нем.
Для использования модуля данных в приложении необходимо объявить его в разделе uses модуля приложения.
Компоненты отображения и редактирования данных
Все компоненты отображения и редактирования данных располагаются в группе DataControls. Каждый компонент этой группы имеет свойство для подключения к источнику данных, это свойство - DataSource: TDataSource.
Класс TDBGrid
Данный компонент используется для представления НД в виде таблицы. Структура таблицы будет соответствовать структуре НД. Строки являются записями, а столбцы – полями. Основные свойства класса TDBGrid:
· Columns: TDBGridColumns – коллекция объектов описывающих каждый столбец таблицы;
· DataSource: TDataSource – ИД, с которым связана таблица;
· DefaultDrawing: Boolean – определяет способ прорисовки данных в таблице. Если true, то прорисовка выполняется автоматически, в противном случае прорисовка выполняется разработчиком в событиях OnDrawColumnCell и OnDrawDataCell;
· FieldCount: Integer – количество столбцов таблицы;
· Fields[Index: Integer]: TField – массив полей НД;
· Options: TDBGridOptions – параметры отображения данных в таблице;
· ReadOnly: Boolean – управляет режимом «только для чтения»
· SelectedField: TField – выбранное в данный момент поле таблицы;
· SelectedIndex: Integer – номер текущего столбца.
Каждый столбец таблицы является представителем класса TColumn и имеет следующие основные свойства:
· Alignment: TAlignment – выравнивание данных в столбце;
· Color: TColor – цвет фона столбца;
· DropDownRows: Cardinal – количество строк в раскрывающемся списке ячеек столбца;
· FieldName: String – имя поля НД, с которым связан столбец;
· Font: TFont – параметры шрифта используемого в столбце;
· PickList: TStrings – значения раскрывающихся списков;
· Showing: Boolean – определяет отображается столбец или нет;
· Title: TColumnTitle – заголовок столбца и его параметры;
· Width: Integer – ширина столбца.
Компонент имеет возможность управления отображением полей, для этого используется редактор столбцов, вызвать который можно двойным кликом по компоненту расположенному на форме (рисунок 5.4.3).
Рисунок 5.4.3 - Использование редактора столбцов компонента TDBGrid
Компоненты для доступа к отдельным полям
Для доступа к отдельным полям БД в Delphi имеется ряд компонентов аналогичных обычным элементам отображения и редактирования данных рассмотренным ранее (TEdit, TComboBox и т.д.). Отличие заключается только в том, что элементы работающие с БД получают значения из ИД. Для получения значений из ИД используются следующие свойства:
· DataSource: TDataSource – ИД, с которым связан компонент;
· DataField: String – имя поля НД, из которого компонент получает информацию.
В таблице 5.4.1 приведены основные классы визуальных компонентов используемых для доступа к отдельным полям, дано краткое описание этих компонентов и рассмотренные ранее аналоги.
Таблица 5.4.1 - Описание визуальных компонентов доступа к данным
| Класс | Класс-аналог | Краткое описание |
| TDBText | TLabel | Надпись используется для отображения текущего значение поля НД |
| TDBEdit | TEdit | Поле ввода используется для отображения и редактирования текущей записи поля НД |
| TDBMemo | TMemo | Многострочный редактор используется для отображения и редактирования многострочных текстовых полей |
| TDBCheckBox | TCheckBox | Флажок предназначен для отображения и редактирования логических и даже текстовых полей, в зависимости от значений списка ValueChecked и типа поля. |
| TDBRadioGroup | TRadioGroup | Группа переключателей. Свойство Items содержит список переключателей, а список Values содержит список значений, которые будут переданы полю в случае выбора переключателя. |
| TDBListBox | TListBox | Список служит для отображения текущего значения поля и замены его на любое из списка |
| TDBComboBox | TComboBox | Поле с раскрывающимся списком позволяет отображать текущее значение поля НД. Позволяет выбирать существующее значение из раскрывающегося списка и вводить новое |
| TDBImage | TImage | Компонент используются для вывода изображений хранящихся в БД. Имеет ряд методов позволяющих загружать изображения из файлов или буфера обмена |
Вопросы для самоконтроля
1. Какие группы компонентов используются для работы с БД в Delphi?
2. В чем назначение визуальных компонентов для работы с БД?
3. Для чего необходим набор данных?
4. Какую роль играет источник данных?
5. Назовите основные свойства и события источника данных.
6. Что такое модуль данных, какую роль он играет?
7. Какие основные события модуля данных вы знаете?
8. Какие основные свойства визуальных компонентов вы знаете?
9. Почему свойство DataField отсутствует в классе TDBGrid?
10. Перечислите основные компоненты для доступа к отдельным полям.
Еще по теме Лекция 5.4. Использование БД в Delphi:
- 5. Оценка эфективности наружной рекламы
- 30) Профиль аудитории
- Ответы к экзамену по предмету Философия, 2017
- Конфедерация и иные формы межгосударственных объединений (союзы, сообщества, содружества, ассоциации)
- Государственные аппарат (бюрократия). Принципы его организации и деятельности.
- Органы законодательной власти: порядок образования, структура, компетенция.
- Государство в политической системе общества.
- Государство и церковь.
- 57 Понятие системы законодательства. Основные свойства российской системы законодательства: многообразие, государственная упорядоченность, иерархичность нормативных юридических актов.
- ПРИЛОЖЕНИЕ
- § 2. «В рассказах, и в театре он создал свой жанр, свой ритм, свою фразу»: Чехов в прозе Алданова