Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 5.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

1.8. Просмотр списка подчиненных таблиц

Таблица, связанная с другими таблицами, является либо главной, либо подчи­ненной. Выше мы рассмотрели задание ссылочной целостности для подчинен­ной таблицы. Для главной таблицы можно просмотреть список подчиненных таблиц, отображаемый при выборе пункта Dependent Table (Подчиненная табли­ца) все того же комбинированного списка Table Properties (см. рис. 5.2). Этот список содержит имена всех таблиц, имеющих условия ссылочной целостности с участием данной таблицы.

1.5. Изменение структуры таблицы

Структуру существующей таблицы можно изменить, выполнив команду Table/Restructure... после предварительного выбора таблицы в окне программы Database Desktop. В результате открывается окно определения структуры табли­цы, и дальнейшие действия не отличаются от действий, выполняемых при соз­дании таблицы.

Замечание

При изменении структуры таблицы с ней не должны работать другие приложе­ния, в том числе Delphi. Поэтому предварительно необходимо закрыть Delphi или приложение, в котором компоненты Table связаны с перестраиваемой таб­лицей. Другим вариантом является отключение активности компонентов Table, связанных с перестраиваемой таблицей, для чего свойству Active этих компо­нентов через Инспектор объектов устанавливается значение False.

Переименование таблицы следует выполнять из среды программы Database Desktop, а не из среды Windows, например, с помощью Проводника. Для этого при работе со структурой таблицы можно нажать кнопку Save as... и задать но­вое имя таблицы. В результате в указанном каталоге диска появятся все необ­ходимые файлы таблицы. При этом старая таблица также сохраняется. Ин­формация о названии таблицы используется внутри ее файлов, поэтому про­стое переименование всех файлов таблицы приведет к ошибке при попытке доступа к ней.

Если необходимо просто ознакомиться со структурой таблицы, то выполняется команда Table/Into Structure.... В результате появляется окно определения структуры таблицы, но элементы, с помощью которых в структуру таблицы мо­гут быть внесены изменения, заблокированы. Просмотр структуры возможен также для таблицы, с которой связаны другие приложения.

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

Для примера рассмотрим создание приложения, позволяющего перемещаться по записям таблицы БД, просматривать и редактировать поля, удалять записи из таблицы, а также вставлять новые. Файл проекта приложения обычно не требует от разработчика выполнения каких-либо действий. Поэтому при создании при­ложения главной задачей является конструирование форм, в простейшем случае — одной формы.

2.1. Приложение с одной формой

Вид формы приложения на этапе проектирования показан на рис. 5.16, где на форме размещены компоненты Tablel, DataSourcel, DBGridl и DBNavigatorl.

Компонент Tablel обеспечивает взаимодействие с таблицей БД. Для связи с требуемой таблицей нужно установить соответствующее значение свойствам DataBaseName, указывающему путь к БД, и TableName, указывающему имя табли­цы. После задания таблицы для открытия набора данных свойству Active долж­но быть установлено значение True.

Рис. 5.16. Форма приложения для работы с БД

Замечание

Значение True свойству Active нужно устанавливать после задания таблицы БД, т. е. после установки нужных значений свойств DataBaseName и TableName.

Имя таблицы лучше выбирать из раскрывающегося списка в поле значения свойства TableName. Если путь к БД (свойство DataBaseName) задан правильно, то в этом списке отображаются главные файлы всех доступных таблиц.

В рассматриваемом приложении использована таблица клиентов, входящая в состав поставляемых с Delphi примеров, ее главный файл — clients.dbf. Файлы этой и других таблиц примеров находятся в каталоге, путь к которому указывает псевдоним dbdemos.

Компонент DataSource1 является промежуточным звеном между компонентом Table1, соединенным с реальной таблицей БД, и визуальными компонентами DBGrid1 и DBNavigatorl, с помощью которых пользователь взаимодействует с этой таблицей. На компонент Table1, с которым связан компонент DataSourcel, указывает свойство DataSet последнего.

Компонент DBGridl отображает содержимое таблицы БД в виде сетки, в кото­рой столбцы соответствуют полям, а строки — записям таблицы. По умолча­нию пользователь может просматривать и редактировать данные. Компонент DBNavigatorl позволяет пользователю осуществлять перемещение по таблице, редактировать, вставлять и удалять записи. Компоненты DBGridl и DBNavigatorl связываются со своим источником данных — компонентом DataSourcel — через свойства DataSource.

Взаимосвязь компонентов приложения и таблицы БД и используемые при этом свойства компонентов показаны на рис. 5.17.

При разработке приложения значения всех свойств компонентов можно задать с помощью Инспектора объектов. При этом требуемые значения либо непосред­ственно вводятся в поле, либо выбираются из раскрывающихся списков. В по­следнем случае приложение создается с помощью мыши и не требует набора каких-либо символов с клавиатуры. В табл. 5.1 приведены компоненты, ис­пользуемые для работы с таблицей БД, основные свойства и их значения.

Рис. 5.17. Взаимосвязь компонентов приложения и таблицы БД

Таблица 5.1

Значения свойств компонентов

Компонент

Свойства

Значения

Tablel

DataBaseName

TableName

Active

dbdemos

clients.dbf

true

DataSourcel

DataSet

Tablel

DBGridl

DataSource

DataSourcel

DBNavigatorl

DataSource

DataSourcel

Рис. 5.18. Окно Database Form Wizard

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

Для автоматизации процесса создания формы, использующей компоненты для операций с БД, можно вызвать Database Form Wizard (Мастер форм баз дан­ных), показанный на рис. 5.18. Этот Мастер расположен на странице Business Хранилища объектов.

Мастер позволяет создавать формы для работы с отдельной таблицей и со свя­занными таблицами, при этом можно использовать наборы данных Table или Query.