Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных 1 лекция лаб 1

.pdf
Скачиваний:
10
Добавлен:
30.04.2015
Размер:
2.3 Mб
Скачать

11

Рис. 1.16. Расположение таблиц в окне Data Diagram

Для установления связи между таблицами щелкните на кнопке [Щ: (кнопка Master Detail) панели инструментов, подведите указатель мыши в виде перечеркнутого круга к нижней кромке верхней таблицы (в этот момент указатель превратится в крестик), нажмите левую кнопку мыши и, удерживая ее нажатой, прочертите линию к верхней кромке нижней таблицы, после чего отпустите кнопку. На экране появится окно конструктора связей (рис. 1.17).

Чтобы установить связь, нужно указать связываемые поля в родительской и дочерней таблицах. По умолчанию для дочерней таблицы конструктор связей выбрал поле с первичным ключом Move ID. Чтобы сменить поле, нужно раскрыть список Available Indexes в верхней части окна и выбрать индекс MOVEBOOK_NAKL. После этого в поле Detail Fields появится имя поля MNakl — щелкните на нем и на имени поля NakllD в списке Master Fields, после чего щелкните на кнопке Add (эта кнопка станет доступной только после выделения полей связи и перестает быть доступной после щелчка на ней). Закройте окно конструктора связей щелчком на кнопке ОК.

Рис. 1.17. Окно конструктора связей

После выполнения этих действий между таблицами NAKLS и MOVEBOOK устанавливается связь один ко многим по полю NakllD, о чем свидетельствует вид окна Data Diagram на рис. 1.18.

Рис. 1.18. Окно Data Diagram после установления связи между таблицами

Щелкните на таблице Movebook. DB в окне дерева объектов и откройте набор данных Move: в окне инспектора объектов поместите в его свойство Active значение True. Точно так же откройте таблицу Nakls.

На этом начальный этап работы с окном модуля данных закончен, и нам нужно перейти к главному окну программы (щелкните на вкладке fmNaklsU в окне кода и нажмите клавишу F12). С помощью команды File ► Use Unit свяжите модуль главного окна с модулем данных. Для верхней сетки DBGridl раскройте список свойства DataSource и выберите в нем пункт DataSourcel — сетка туг же наполнится данными из НД Nakls. Точно так же свяжите нижнюю сетку с источником данных DataSource2. Свяжите навигатор баз данных DBNavigatorl в нижней части окна с источни-

ком DataSourcel.

12

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). Это

 

свойство игнорируется при работе с серверной СУБД.

13

Второй компонент, называемый DataSource, является вспомогательным. Он используется для соединения таблицы в базе данных с визуальным компонентом на форме. Свойства компонента DataSource приводятся в cледующей таблице:

Свойство

Описание

AutoEdit

Определяет, переходит ли связанная с источником данных таблица БД в режим редактирова-

 

ния записи, если пользователь начинает печатать символы в одном из управляющих элемен-

 

тов, связанных с источником данных.

DataSet

Указывает компонент (Table или Query), поставляющий данные из таблицы.

Enabled

Определяет, обновляется ли содержимое управляющих элементов, связанных с источником

 

данных, при изменении текущей записи в таблице.

2. Компонент DBGrid для табличного просмотра и редактирования данных

Компонент DBGrid является визуальным табличным компонентом для просмотра и редактирования таблицы БД. Компонент DBGrid внешне похож на StringGrid и DrawGrid, но отличается от них свойствами и событиями, основные из которых приведены в следующей таблице:

Свойство

Описание

Align

Определяет способ выравнивания компонента внутри своего владельца (формы или

 

другого компонента).

Columns

Содержит список объектов, описывающих колонки в таблице.

DataSource

Указывает источник (компонент DataSource), из которого поступают отображаемые

 

данные.

DefaultDrawing

Если равно True, то ячейки таблицы отражаются в обычном стиле. Если установить это

 

свойство в значение False, то в обработчике события OnDrawColumnCell можно опре-

 

делить свой способ рисования ячеек.

FixedColor

Цвет фиксированных строк и колонок таблицы.

Options

Определяет режимы работы компонента.

ReadOnly

Запрещает пользователю изменять данные.

TitleFont

Шрифт, используемый при отображении колонок.

Для защиты таблицы от изменений используется свойство ReadOnly. Если сделать только читаемой саму таблицу, то никакие другие визуальные компоненты также не смогут изменить ее содержание.

Определение вторичных индексов для сортировки полей БД

DataBase Desktop – Загрузить таблицу

Restructure – изменить структуру

Установить индексное и вторичные поля:

Table Properties – Secondary Indexes

Define

14

15

Порядок создания приложения для работы с базами данных

 

Пусть имеются 2 таблицы:

ГРУППА

 

СТУДЕНТ

Номер группы

 

Номер группы

Кол-во студентов

 

ФИО

Староста

 

Результаты сдачи сессии

1.Создание псевдонима базы данных

BDE Administrator Object – New

Тип базы данных – STANDARD – OK

Изменить имя в STANDARD1 в левом окне на свое имя пользователя. В правом окне изменить путь

PATH: свой каталог на сервере Сохранить все – Apply.

2.Создание таблиц базы данных.

(Инструменты – Database Desktop) Database Desktop

File – Work Directory – Alias – указать псевдоним базы данных

File – Private Directory – свой каталог на диске C File – New – Table – задаем структуру таблицы Каждая строка таблицы соответствует полю.

Fields Name – имя поля

Type – тип поля Size – размер

Key – первичный ключ. Тип поля:

Alpha – A

Number – N

Money – $

Short – S LongInteger – I BCD – #

Date – D

Time – T Timesamp – @ Memo – M

Formatted Memo – F

Graphic Fields – G OLE – O

Logical – L Autoincrement – ± Binary – B

Bytes – Y

3. Создание приложения

BDE – Table

DatabaseName – ruzhitskaya TableName – имя первой таблицы

Active – True Data Access – DataSource

DataSet – Table1 DataControl – DBGrid

DataSource – DataSource1 DataControl – DBNavigator

DataSource – DataSource1