Лабораторная работа №8 Добавление, модификация и удаление строк из приложений C++, используя ado и odbc


Download 0.62 Mb.
bet2/7
Sana10.12.2020
Hajmi0.62 Mb.
#163564
TuriЛабораторная работа
1   2   3   4   5   6   7
Bog'liq
(rus) Lab 8 МББТ


Использование модуля данных.

При конструировании формы невизуальные компоненты, используемые для доступа к данным, такие как DataSource или Table, размещаются на форме, но при выполнении приложения эти компоненты не видны. Поэтому их можно размещать в любом удобном месте формы, выступающей для них контейнером – модулем. Кроме того, для размещения невизуальных компонентов, через которые осуществляется доступ к данным, предназначен специальный объект – модуль данных.

Существует три типа модуля данных:


  1. простой модуль данных;

  2. удаленный модуль данных;

  3. Web–модуль.

Ниже рассматривается простой модуль данных, который представлен объектом DataModule. Использование удаленного модуля данных и Web–модуля рассматривается в разделах трехуровневые приложения и публикация БД в Интернете в книге Б. С. Послед «Borland C++ Builder 6. Разработка приложений баз данных».

Если применяется простой модуль данных, то взаимосвязь компонентов приложения и таблицы БД имеет вид, показанный на рис. 8.5.



Рис. 8.5. Модуль данных

Модуль данных, как и форма, является контейнером для своих невизуальных компонентов, и для него создается модуль кода с расширением С++. Добавление модуля данных к проекту выполняется командой File/New/DataModule главного меню С++ Builder. В окне модуля компоненты размещаются таким же образом, как и на форме. При выборе объекта в Инспекторе объектов отображаются его свойства, значения которых можно просматривать и изменять.

При обращении к содержащимся в модуле данных компонентам для них указывается составное имя, в которое, кроме имени компонента, входит также имя модуля данных. Составное имя имеет формат



<Имя модуля данных> -> <Имя компонента>

Ниже приводится пример кода, в котором осуществляется обращение к компонентам модуля данных.

void __fastcall TForm1::FormCreate(TObject *Sender)

{

DataModule2->Tablel->DatabaseName = “dbdemos”;



DataModule2->Tablel->TableName = “clients.dbf”;

DataModule2->DataSourcel->DataSet = DataModule2->Tablel;

DBGridl->DataSource = DataModule2->DataSourcel;

DBNavigatorl->DataSource = DataModule2->DataSourcel;

DataModule2->Tablel->Active = true;

}

Для компонентов выполняется установка значений свойств, связывающих между собой эти компоненты и таблицу БД. Значения свойств устанавливаются динамически в процессе выполнения приложения, для чего использован обработчик события создания главной формы приложения. В составных именах компонентов доступа к данным, которыми являются источник данных DataSourcel и набор данных Tablel, указывается имя модуля данных DataModule2.



Чтобы обеспечить возможность доступа к компонентам модуля данных в модуле формы, в список uses раздела implementation необходимо включить ссылку на модуль данных:

#include “unit2.cpp”;

Ссылку на другой модуль можно написать самостоятельно, но С++ Builder дает возможность вставить ее автоматически. При выборе команды File/Use Unit.

Помимо компонентов доступа к данным, которыми являются session, Database, Table, Query, storedProc, BatchMove и др., в модуле данных можно размещать также невизуальные компоненты, не имеющие прямого отношения к БД, например, ImageList, OpenDialog ИЛИ Timer.

При работе с модулем данных в Палитре компонентов доступны только невизуалные компоненты.

Модуль данных позволяет:



  • отделить управление БД от обработки данных;

  • создать модуль, совместно используемый несколькими приложениями.

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

Использование простого модуля данных несколькими приложениями позволяет ускорить разработку приложений, т. к. готовый модуль данных впоследствии можно включать в новые приложения. Кроме того, управление БД через общий модуль дает возможность определить для всех пользователей одинаковые режимы и правила работы с базой, а также делает более простым изменение этих режимов и правил.

Однако для небольших приложений использование простого модуля данных не всегда оправдано, т. к. может затруднить, а не облегчить разработку приложения.
Задание:

Разработать поиск и другие функций со сложными запросами (соединение, объединение, агрегатные функции, подзапросами):



  1. Добавить на форму элементы по редактированию и добавлению данных с использованием компонентов ADOTable и DBControls.

  2. Используя ADOTable произвести фильтрацию и сортировку данных.

  3. Создать формы поиска с помощью ADOQuery.

  4. Используя соединение и компонент ADOQuery реализовать соединение таблиц.

  5. Реализовать поиск в системе, используя компоненты ADOQuery и ADOTable.

  6. Привести скриншоты результата выполнения программы, написанной на C++ Builder, описав каждое действие на отдельном скриншоте.

  7. Подготовить отчет по выполненной работе.


Требования к отчету:

Отчет по выполненной работе должен содержать:



  1. Тему лабораторной работы.

  2. Цель лабораторной работы.

  3. Краткие теоретические сведения по теме.

  4. Задание.

  5. Реляционную модель базы данных по предметной области.

  6. Скриншоты работы программы отображающие добавление, редактирование и удаление данных.

  7. Скриншоты программы отображающие поиск и соединение таблиц.


Вопросы для самоконтроля:

  1. Как осуществить фильрацию данных через ADOTable?

  2. Как осуществить сортировку через ADOTable?

  3. Как использовать собственный SQL для манипуляции данными в приложении на C++?

  4. В чем разница между методами Open() и ExecSQL() в ADOQuery?

  5. Как сделать подзапросы и соединения в приложении, разработанном в среде C++ Bulder?

  6. Можно ли создать привязку элементов, отображающих данные в виде списка, с другими элементами, т.е. при выборе строки значения всех столбцов показать в соответствующих элементах Tedit или TCombobox?


Пример выполнения задания

Продолжим работу над формой, созданной в Лабораторной работе №7.



Добавим к форме новую вкладку, например employee


Download 0.62 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling