Примечание
Кроме того, здесь же (в группе Display) можно задать формат вывода (Format), маску ввода (Input mask), заголовок (Caption).
В группе Field validation задаются параметры проверки правильности ввода, а именно:
□ Rule — правило проверки.
□ Message — сообщение проверки.
□ Default value — значение по умолчанию.
Рис. 5. Окно Table Designer
Заглавные буквы в именах полей игнорируются. При нажатии Enter структура таблицы сразу отображается в Data Base Designer. Вернуться в Table Designer можно с помощью опции Modify.. из контекстного меню, открывающегося по клику правой кнопки на образе таблицы.
Аналогичным образом, на основе имеющихся данных о структуре базы данных и принципах создания таблиц, создать структуру (набор полей с указанием их типов и параметров) других таблиц базы (Journal и Owner).
Наполнить предварительно базу данных произвольно вымышленными данными для 6 животных, принадлежащих 4 хозяевам.
Заполнение базы данных с точки зрения проведения процесса является одной из наиболее легких операций в работе с базами данных. Чтобы начать вводить данные, необходимо дважды щелкнуть мышью на заголовке таблицы в Database Designer (вид на рис. 10). Для ввода данных использовать опцию Append Mode. Следует учесть, что предложенный на данном этапе метод заполнения таблиц удовлетворяет лишь в том случае, когда производится тестирование базы данных. Для рабочего заполнения базы данных (а то выполняется в процессе ее эксплуатации) используются формы, создание которых будет рассмотрено ниже.
Рис. 10. Ввод данных
Для настройки вида формы ввода используется меню View. На рисунке представлен табличный вид, именуемый Browse (Обзор).
Установление связей между таблицами
Теория – см файл организация межтабличных связей
БД Employee1, ранее созданную в Access дополнить полем «пол» (логического типа) и выполнить организацию связей в соответствие с приведенным примером рис.7.
Рис. 7. Пример структуры базы данных в третьей нормальной форме
Связи таблиц в СУБД Fox Pro
Создать схему данных базы Vet_1 путем установления межтабличных связей в соответствии с концептуальной моделью (рис. 1 в файле Практич_ИС_02_02).
Создание постоянных межтабличных связей
Для создания межтабличных связей необходимо создать индексы, отображенные на рис.8. Если в таблицах ранее Вы установили индексы для лишних полей, то их можно удалить при изменении выбранной таблицы (опция Modify). Технология создания индексов (в данном случае важны первичные ключи) приведена в Справочных сведениях (см. ниже).
Рис. 8. Индексы БД
В области каждой таблицы в окне Database Designer указывается информация о наличии индексов. Primary - индекс отмечен значком ключа слева от названия индекса и может быть использован для создания межтабличных связей и проверки целостности БД.
Постоянные связи, о которых идет речь, автоматически устанавливаются при открытии таблиц.
1. Одна из связываемых таблиц является родительской, другая дочерней.
2. Для родительской таблицы должен быть определен первичный ключ (Primary) или ключ-кандидат (Candidate).
3. Для дочерней таблицы индекс может быть не уникальным, по этому индексу дочерняя таблица будет связываться с родительской.
Для установки межтабличной связи необходимо выделить Primary-ключ родительской таблицы и перетащить его на соответствующий индекс дочерней таблицы. В случае успешного проведения данной операции произойдет установление межтабличной связи, что будет графически отражено в Database Designer так, как это показано на рис. 9.
Рис. 9. Установление межтабличных связей
Открыть ранее созданную базу данных Employee2 в программе Data Base Desktop (дополнив соответствующую таблицу полем «пол») и установить межтабличные связи (см. приложение) в соответствии с вышеуказанными данными.
Здесь установление связей отличается от методики, рассмотренной в заданиях 1 и 2, и не отражается в виде наглядной схемы данных.
Вопросы по теме
Ввод, вывод и редактирование данных с помощью инструментов Delphi
Ч.I. Технология BDE
Упражнения 02-4
Этот учебный файл без изменений сохранять в отдельном файле, а файлы таблиц с выполняемой самостоятельно работой под своим именем сохранять отдельно во вложенной папке с именем Delphi_BD. Оба объекта и все другие рабочие файлы сохранять в папке "Временная_02", которую поместить в папку "Мои документы".
Для уяснения особенностей использования различных технологий доступа к данным, полезно ознакомиться с материалом Дополнения (см. в конце этого файла).
Задание 1
Создать с помощью Delphi ленточную форму (в виде вертикального списка), осуществляющую доступ к данным через механизм BDE и работу с полями таблицы Name (Физические лица) базы данных Employee2 (см. упражнения ПрактичИС_02_01).
Для просмотра и редактирования данных, содержащихся в таблице, будем использовать окна строчного редактора (компоненты типа Edit). Таким образом, в целях упрощения (чтобы избежать преобразования типов данных), тип полей таблицы Name, которые будут выводиться в форме, должен быть текстовым:
□ «Фамилия», «Имя», «Отчество», «Телефон», «Адрес», «Дата рождения» — текстовые поля;
□ «Пол» — поле типа Boolean.
Окончательный вид формы приложения для работы с таблицей базы данных может, например, иметь вид показанный на рис.1.
Для отображения текстовых полей использовать компоненты DBEdit. Логические поля удобнее отображать с помощью флажков — компонентов DBCheckBox. Кроме того, на форму необходимо поместить элемент DBNavigator для обеспечения навигации по набору данных, а также элементы Label, с помощью которых пояснить назначение полей ввода.
Порядок выполнения
1. Для создания нового приложения выполните команду File ► New Application. Так как мы работаем только с одной таблицей, то компоненты доступа к данным можно поместить прямо на форму. Для доступа к данным в этом задании будем использовать технологию BDE.
2. Используя вкладку BDE палитры компонентов, разместите на форме невизуальный компонент DBTable. Затем перейдите в палитре компонентов на вкладку Data Access и установите на форму компонент DataSource (DB), который необходим для связи набора данных BDE с компонентами визуализации данных.
3. С помощью инспектора объектов укажите в свойстве DataSet имя объекта (оставить предложенное по умолчанию — Tablel).
4. Выделите на форме компонент DBTable и затем в поле ввода свойства DatabaseName в ниспадающем меню выберите имя алиаса, связанного с таблицами данных (для базы должен был быть создан алиас (авторский был DBNew2), иначе ее нельзя подключить через BDE).
5. К компоненту DBTable необходимо подключить нужную таблицу базы данных. Для этого выделим на форме компонент DBTable и затем в поле ввода свойства TableName в инспекторе объектов укажем имя используемой таблицы —«Name1».
6. Поместить на форму семь-девять (по числу полей редактируемой таблицы) компонентов полей ввода и редактирования данных DBEdit, компонент DBCheckBox (для ввода значения "пол") и компоненты Label для обозначения названия полей.
Примерный вид формы (уже на этапе выполнения) показан на рис. 02.04.1.
Рис.02.04.1. Форма для ввода вывода и модификации записей таблицы Name1.
7. Для настройки элементов визуализации полей базы данных (семь полей ввода DBEdit и флажок DBCheckBox) и элемента навигации по набору данных (DBNavigator, назначение кнопок и свойства его см. ниже в Приложении) укажем имя источника данных в инспекторе объектов в свойстве DataSource (оставить по умолчанию — DataSourcel), а в свойстве DataField для каждого поля ввода укажем имя поля набора данных (выбрать имя поля из предложенного списка), с которым связывается элемент отображения и редактирования данных.
8. Для визуализации следует реализовать процедуры открытия и закрытия набора данных. Набор данных должен открываться при запуске приложения и закрываться при его завершении. Для открытия набора данных используется метод Open класса BDETablе, для закрытия — метод Close того же класса. Для выполнения этого перейти на главную форму во вкладку Events инспектора объектов и по двойному клику в обработчике события OnShow вставить в открывшемся редакторе кодов вставить Table1.Open, а в обработчике OnClose метод Table1.Close.
Текст модуля разработанной формы приведен в листинге 02.1 (только для справки).