- •Введение в базы данных
- •Типы субд
- •Таблицы бд и связи между ними
- •Связи между таблицами базы данных
- •Первичные ключи и индексы
- •Механизм bde
- •Проектирование бд
- •Имена таблиц и полей
- •Создание таблиц
- •Свойства таблиц Paradox 7
- •Типы полей
- •Контроль за содержимым полей
- •Ссылочная целостность
- •Парольная защита
- •Пример простой программы
- •Разработка главной формы
- •Создание псевдонима бд
- •Модуль данных
- •3. Модули данных
- •4. Компоненты для работы с базой данных
- •1. Таблица с источником данных
- •2. Компонент dbGrid для табличного просмотра и редактирования данных
- •Определение вторичных индексов для сортировки полей бд
- •Порядок создания приложения для работы с базами данных
- •1. Создание псевдонима базы данных
- •2. Создание таблиц базы данных.
- •3. Создание приложения
3. Модули данных
Для упрощения разработки приложений баз данных наряду с формами в Delphi используются модули данных. Модуль данных (data module) – это централизованный контейнер для невизуальных компонентов доступа к базе данных. Он предназначен для отделения логики обработки данных и бизнес-правил от логики работы пользовательского интерфейса.
4. Компоненты для работы с базой данных
Для работы с базами данных используются три группы компонентов:
множества данных (data sets);
визуальные компонентs баз данных (data-aware controls);
источники данных (data sources).
Множества данных – это невизуальные компоненты, которые взаимодействуют с BDE и обеспечивают доступ к данным в таблицах. Главные из них – Table и Query.
Компонент Table является самым фундаментальным множеством данных в Delphi. Он обеспечивает доступ к таблице практически любой СУБД. С помощью данного компонента можно организовать произвольный доступ к любой записи или их подмножеству, поиск записей по заданному критерию.
Компонент Query является самым гибким множеством данных в Delphi. Он инкапсулирует в себе запрос к базе данных на языке SQL, результат действия которого есть логическая таблица, формируемая их строк и столбцов всех физических таблиц базы данных. В сравнении с компонентом Table компонент Query обладает тем преимуществом, что он может работать сразу с несколькими таблицами, предоставляя доступ ко всем реляционно связанным данным. Более того, данный компонент позволяет создавать “гетерогенные множества”, объединяя на серверах таблицы с разнотипными СУБД.
Визуальные компоненты баз данных – это управляющие элементы пользовательского интерфейса для просмотра и редактирования данных. Большинство из них дублируют известные управляющие элементы диалоговых окон. Визуальные компоненты баз данных отличаются от обычных управляющих элементов тем, что сами знают о том, как брать данные из полей таблицы и как их туда помещать. Для этого они связываются с соответствующими источниками данных с помощью своих свойств.
Источники данных – это невизуальные компоненты DataSource, выполняющие роль трубопроводов между множествами данных и визуальными компонентами данных.
При разработке приложений множества данных обычно помещают в модуль данных, а визуальные компоненты базы данных – на форму.
1. Таблица с источником данных
Для работы с набором данных в табличной форме используются компоненты Table и DataSource.
Компонент Table содержит все необходимые свойства, события и методы для создания, модификации, поиска, и фильтрации записей в таблице. Он обеспечивает простой и эффективный доступ к таблице. Важнейшие свойства компонента следующие:
Свойство |
Описание |
Active |
Если равно True, то таблица открыта, если False, то закрыта. |
CachedUpdates |
Если равно True, операции по модификации таблицы (например, изменение или удаление записей) сразу не выполняются, а кэшируются (т.е. накапливаются). Для физического выполнения скопившихся операций вызывается метод ApplyUpdates. |
DatabaseName |
База данных, которой принадлежит таблица. Это свойство либо содержит псевдоним, либо маршрут к файлам таблиц. |
Exclusive |
Если равно True, всем остальным пользователям таблицы будет отказано в доступе. |
Filter |
Булевское выражение, задающее фильтр для записей. |
Filtered |
Включает или выключает фильтрацию записей. |
FilterOptions |
Флаги, определяющие режимы фильтрации. |
IndexFieldNames |
Имена индексных полей, по которым упорядочиваются записи. |
IndexFiles |
Список индексных файлов, используемых при работе с таблицами в формате Dbase. |
IndexName |
Вторичный индекс таблицы. Свойства IndexName и IndexFieldNames являются взаимоисключающими. |
MasterFields |
Содержит имена полей, по которым данная подчиненная таблица связывается с главной таблицей. |
MasterSource |
Указывает источник данных (компонент DataSource) главной таблицы, если данная таблица является подчиненной. |
ReadOnly |
Позволяет запретить любую модификацию данных в таблице. |
TableName |
Имя таблицы БД. |
TableType |
Физический тип таблицы (возможные значения: ttASCII, ttDBase, ttParadox). Это свойство игнорируется при работе с серверной СУБД. |
Второй компонент, называемый DataSource, является вспомогательным. Он используется для соединения таблицы в базе данных с визуальным компонентом на форме. Свойства компонента DataSource приводятся в cледующей таблице:
Свойство |
Описание |
AutoEdit |
Определяет, переходит ли связанная с источником данных таблица БД в режим редактирования записи, если пользователь начинает печатать символы в одном из управляющих элементов, связанных с источником данных. |
DataSet |
Указывает компонент (Table или Query), поставляющий данные из таблицы. |
Enabled |
Определяет, обновляется ли содержимое управляющих элементов, связанных с источником данных, при изменении текущей записи в таблице. |