СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация на тему "Создание приложения со связанными таблицами"

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация на тему "Создание приложения со связанными таблицами"

Просмотр содержимого документа
«Презентация на тему "Создание приложения со связанными таблицами"»

"Создание приложения со связанными таблицами"

Тема урока: Создание приложения со связанными таблицами.

В общем случае приложение может иметь доступ к нескольким связанным таблицам. Как отмечалось, связь между таблицами устанавливается через поля связи, которые обязательно должны быть индексированными. При задании связи между двумя таблицами имеет место отношение подчиненности: одна таблица является главной, а вторая — подчиненной. Обычно используется связь "один-ко-многим", когда одной записи в главной таблице может соответствовать несколько записей в подчиненной таблице. Такая связь также называется "мастер-детальный" (Master-Detail). После установления связи между таблицами при перемещении в главной таблице текущего указателя на какую-либо запись в подчиненной таблице автоматически становятся доступными записи, у которых значение поля связи равно значению поля связи текущей записи главной таблицы.

Рис. 3. Вид приложения с несколькими таблицами при выполнении

В частности, при выборе в главной таблице (рис. 3) записи со значением вед. нс поля Post в подчиненной таблице автоматически отображается строка с тем же значением в поле связи P_Post.

В рассмотренном нами примере использовалась связь типа "многие-кодному". Чаще применяется связь типа "один-ко-многим". Однако в этом случае описанным способом можно установить связь только между двумя таблицами (одной главной таблицей и одной подчиненной таблицей), в то время как при данном типе связи требуется наличие нескольких главных и одной подчиненной таблиц.

Для организации связи между таблицами в подчиненной таблице (компонент Table в случае механизма BDE или его аналоги для других механизмов доступа) используются следующие свойства, указывающие: MasterSource — источник данных главной таблицы; IndexName — текущий индекс подчиненной таблицы; IndexFieldNames — поле или поля связи текущего индекса подчиненной таблицы; MasterFields — поле или поля связи индекса главной таблицы. Во время работы со связанными таблицами нужно учитывать некоторые особенности. При изменении (редактировании) связанного поля может нарушиться связь между записями двух таблиц. Поэтому при редактировании связанного поля записи главной таблицы нужно соответственно изменять и значения поля связи всех подчиненных записей. При удалении записи главной таблицы нужно удалять и соответствующие ей записи в подчиненной таблице (каскадное удаление). При добавлении записи в подчиненную таблицу значение поля связи формируется автоматически по значению поля связи главной таблицы.

Для организации связи между таблицами в подчиненной таблице (компонент Table в случае механизма BDE или его аналоги для других механизмов доступа) используются следующие свойства, указывающие:

  • MasterSource — источник данных главной таблицы;
  • IndexName — текущий индекс подчиненной таблицы;
  • IndexFieldNames — поле или поля связи текущего индекса подчиненной таблицы;
  • MasterFields — поле или поля связи индекса главной таблицы.

Во время работы со связанными таблицами нужно учитывать некоторые особенности.

  • При изменении (редактировании) связанного поля может нарушиться связь между записями двух таблиц. Поэтому при редактировании связанного поля записи главной таблицы нужно соответственно изменять и значения поля связи всех подчиненных записей.
  • При удалении записи главной таблицы нужно удалять и соответствующие ей записи в подчиненной таблице (каскадное удаление).
  • При добавлении записи в подчиненную таблицу значение поля связи формируется автоматически по значению поля связи главной таблицы.
Ограничения ссылочной целостности (по изменению полей связи и каскадному удалению записей) могут быть наложены на таблицы при их создании, например в среде программы Database Desktop, или устанавливаться программно. Рассмотрим следующий пример. Предположим, что требуется установить связь между тремя таблицами. Две из них являются подчиненными (таблицы PSalary — оклад по должности и DSarary — надбавка за степень) и одна — главной (SEmployee — данные о сотрудниках) (рис. 1).

Ограничения ссылочной целостности (по изменению полей связи и каскадному удалению записей) могут быть наложены на таблицы при их создании, например в среде программы Database Desktop, или устанавливаться программно.

Рассмотрим следующий пример. Предположим, что требуется установить связь между тремя таблицами. Две из них являются подчиненными (таблицы PSalary — оклад по должности и DSarary — надбавка за степень) и одна — главной (SEmployee — данные о сотрудниках) (рис. 1).

Рис. 1. Связи между таблицами Для каждой из трех таблиц в приложении зададим по два компонента Table и DataSource. А именно Table1 и DataSource1 — для таблицы данных о сотрудниках, Table2 и DataSource2 — для таблицы окладов, Table3 и DataSource3 — для таблицы надбавок. Для компонентов Table1—Table3 в качестве значения свойства DatabaseName установим DBDEMOS, а свойству TableName зададим значения SEmployee, PSalary и DSarary соответственно. Для компонентов DataSource1—DataSource3 свойству DataSet выберем значения Table1—Table3 соответственно.

Рис. 1. Связи между таблицами

Для каждой из трех таблиц в приложении зададим по два компонента Table и DataSource. А именно Table1 и DataSource1 — для таблицы данных о сотрудниках, Table2 и DataSource2 — для таблицы окладов, Table3 и DataSource3 — для таблицы надбавок.

Для компонентов Table1—Table3 в качестве значения свойства DatabaseName установим DBDEMOS, а свойству TableName зададим значения SEmployee, PSalary и DSarary соответственно.

Для компонентов DataSource1—DataSource3 свойству DataSet выберем значения Table1—Table3 соответственно.

Post. При этом оба поля пропадают из своих списков. Заполнение свойств IndexName и MasterFields происходит после закрытия окна при нажатии кнопки ОK. " width="640"

Для каждого из компонентов подчиненных таблиц (Table2 и Table3) свойству MasterSource путем выбора из списка зададим одинаковое значение DataSource1. Затем щелчком мыши в строке свойства MasterFields откроем диалоговое окно Field Link Designer (Конструктор полей связи) (рис. 2). Здесь в раскрывающемся списке Available Indexes (Доступные индексы) выбирается индекс подчиненной таблицы, после чего составляющие его поля отображаются в списке Detail Fields (Детальные поля). В этом списке необходимо выбрать поле подчиненной таблицы, а в списке Master Fields (Главное поле) — поле главной таблицы (рис. 2). После нажатия кнопки Add выбранные поля связываются между собой, что отображается в списке Joined Fields (Связанные поля), например, так: P_Post - Post. При этом оба поля пропадают из своих списков. Заполнение свойств IndexName и MasterFields происходит после закрытия окна при нажатии кнопки ОK.

Диалоговое окно Конструктора полей связи Установление связей между главной и подчиненными таблицами приводит к тому, что при выполнении приложения выбор некоторой записи в главной таблице будет приводить к выбору соответствующих записей в каждой из подчиненных таблиц (рис. 3).

Диалоговое окно Конструктора полей связи

Установление связей между главной и подчиненными таблицами приводит к тому, что при выполнении приложения выбор некоторой записи в главной таблице будет приводить к выбору соответствующих записей в каждой из подчиненных таблиц (рис. 3).