Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
28
Добавлен:
04.05.2019
Размер:
4.03 Mб
Скачать

Модули данных

При разработке приложений для работы с базами данных, принято разделять логику работы и пользовательский интерфейс. Эту задачу решают модули данных – компоненты контейнеры типа TDataModule. Это невидимые формы, на которых можно размещать невизуальные компоненты: наборы данных, источники данных, провайдеры и другие элементы, осуществляющие связь с базами данных.

С точки зрения программирования модули данных во всех версиях Delphi одинаковы, но работа во время проектирования различается.

В Delphi5 для вызова проектировщика модуля данных нужно выполнить команду FileNew и в окне Депозитария на странице New выбрать пиктограмму Data Module .

Окно DataModule содержит в левой панели дерево помещенных в модуль компонентов наборов и источников данных, их полей, ограничений и т.д. В правой панели содержатся две страницы: Components – компоненты, Data Diagram – диаграмма данных. Новые компоненты в модуль переносятся двойным щелчком по пиктограмме компонента на палитре компонентов.

В дереве или на странице Components можно получить доступ к любому компоненту или его полю. Например, вызвать Редактор полей набора данных Tovar можно из контекстного меню компонента Table на странице Components, либо из контекстного меню компонента на дереве компонентов. Здесь же в Редакторе Полей можно добавить все поля, создать новое поле, например, вычисляемое.

Информационные связи между компонентами можно изменить «перетаскиванием» в дереве вершины. Например, вершину компонента DataSourse можно перетащить на вершину набора данных и они автоматически свяжутся, например с Table, и в их свойства DataSet занесутся соответствующие значения.

На странице Data Diagram (диаграмма данных) можно изобразить или спроектировать взаимоотношения между наборами данных, полями, ограничениями и т.п.

Если между компонентами через свойства уже установлены связи, например, связи вида главная-вспомогательная (Master-detail), то при перемещении соответствующих вершин из панели дерева в правую панель Data Diagram, то связь между появившимися блоками отображается автоматически. Если перетаскивать вершину при нажатой клавише Ctrl, то имеющаяся дочерняя вершина расположится горизонтально, при нажатой ShiftCtrl – то вершины расположатся друг под другом. Символ «-» в правом углу позволяет сворачивать блоки.

На диаграмме в зависимости от типа связи различаются обозначения связей:

      1. контурными стрелками обозначаются связи между дочерними и родительскими блоками. Они отображаются автоматически и удалить их с диаграммы нельзя.

      2. закрашенной стрелкой обозначается связь установленная через свойства компонентов. Рядом со стрелкой появляется надпись с именем свойства, посредством которого установлена связь. Связь можно разорвать через контекстное меню командой Remove Relationship.

      3. сплошной линией обозначается связь главной таблицы со вспомогательной. Около связи автоматически пишутся имена полей, по которым осуществляется связь.

      4. линией с изображением глаза и именем результирующего поля просмотра изображается связь наборов данных через поля просмотра. Связь можно разорвать.

Местоположение и форму любой связи можно менять с помощью мыши.

Проектировщик Модулей Данных позволяет также визуально проектировать связи в модуле данных.

Пример. Спроектировать модуль данных, содержащий два набора данных БД Pokupka: главный, связанный с таблицей Tovar.db, и вспомогательный, связанный с таблицей Pokupka.db. Связь должна осуществляться через поле Code_Tovar, которое есть в каждой таблице. Нужно создать поле просмотра в наборе данных для таблицы Pokupka, которое будет содержать значения поля Tovar из набора данных для таблицы Tovar.

  1. Поместить в Окно Проектировщика Модулей Данных два компонента набора данных Table. Для Table свойству DatabaseName задать базу данных Pokupka. Задать TableName=Tovar, и TableName=Pokupka. Для набора Pokupka задать IndexName=Code_Tovar (для связи наборов данных друг с другом).

  2. На панель диаграмм из дерева перетащить вершины, связанные с Tovar и Pokupka.

  3. Нажать кнопку Master Detail , которая создает связь Главная таблица - Вспомогательная таблица. С помощью мыши протянуть связь от блока Pokupka к блоку Tovar. После отпускания мыши появится окно Field Link Designer, в котором нужно указать, что устанавливается связь по полю Code_Tovar.

  4. Перетащить вершину dsTovar(DataSource1) на страницу Data Diagram.

  5. Ввести в набор данных Pokupka поле просмотра Tovar. Для этого нажать кнопку Lookup и провести курсором линию от блока Pokupka к блоку Tovar. В появившемся окне New Lookup Field задать параметры для поля просмотра.

  6. Перетащить вершину dsPokupka(DataSource2) на страницу Data Diagram.

  7. П оочередно выбрать на дереве или на диаграмме Tovar и Pokupka и с помощью контекстного меню задать отображаемые поля, свойства этих полей, ограничения и вычисляемые поля.

  8. Проектирование набора данных завершено.