Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы объектно-ориентированного программирования. Практикум для СПО

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
11 Создать проект осуществляющий формирование списка дисциплин,
читаемых на определенном курсе заданной специальности. Отчет содержит данные
о заведующем отделением, наименовании специальности, номере курса, перечень
дисциплин с указанием наименования дисциплины, количество лекционных часов,
количество лабораторных занятий;
12 Создать проект осуществляющий формирование рецепта для больного.
Отчет содержит сведения о враче, дате обследования, фио пациента, перечень
лекарств с указанием наименования лекарства, количество таблеток в день, курс
лечения (в днях);
13 Создать проект осуществляющий формирование списка городов
определенной области РФ. Отчет содержит сведения о наименовании области,
наличие внешних границ с другими государствами, перечень городов с указанием
наименования города и численности населения;
14 Создать проект осуществляющий формирование рецепта приготовления
блюда. Отчет содержит сведения о полном наименовании блюда, общее время
приготовления, количество калорий, перечень ингредиентов с указанием
наименования ингредиента, количество в граммах, примерная цена;
15 Создать проект осуществляющий формирование списка участков,
закрепленных за поликлиникой. Отчет содержит сведения о номере поликлинике,
фио заведующего, адрес, перечень участков с указанием номера участка, участковом
враче, адреса домов, на данном участке.
141
8 Лабораторная работа №8. Подключение базы данных к
приложению Delphi. Работа с технологией ADO
8.1 Цель работы
Научиться подключать базу данных к приложению Delphi. Изучить основные
принципы работы технологии ADO.
8.2 Ход работы
Задание общего уровня:
1 Изучить методические рекомендации к лабораторной работе; 2 Создать в microsoft access базу данных kadri.mdb для отдела кадров
предприятия. Поля для создаваемой таблицы sotrudnik: код сотрудника (kod), фамилия (fam), имя (name), отчество (otch), пол (pol), дата рождения (rozhd), образование (obraz), домашний адрес (adres), телефон (tel);
3 Создать новый проект delphi, осуществляющий подключение базы
данных с помощью технологии ado;
4 Спроектировать форму приложения, согласно рисунка 45,
представленного в методических рекомендациях; поместить на форму компонент
adoconnection1; обеспечить связь с базой данных при помощи механизма ado;
5 Поместить на форму компоненты adotable1, datasource1, dbgrid1,
dbnavigator1. Связать данные компоненты между собой (методические рекомендации);
6 Организовать поиск записей в таблице по полю фамилия с помощью
метода locate (методические рекомендации п. 8.5.2);
7 Организовать фильтрацию записей в таблице по полю образование с
помощью метода filter и filtered (методические рекомендации п. 8.5.3);
142
8 Организовать сортировку записей по выбранному столбцу с помощью
процедуры sort (методические рекомендации п. 8.5.4);
9 Провести отладку и компиляцию проекта; 10 Сохранить проект на диске в директории lab8_1; 11 Оформить отчет о проделанной работе;
Задание повышенного уровня:
12 Выполнить индивидуальное задание согласно выданного варианта; 13 В проекте осуществить подключение базы данных с помощью
технологии ado, организовать поиск, фильтрацию данных по заданным полям;
14 Сохранить проект на диске в директории lab8_2; 15 Выполнить отладку и компиляцию проекта; 16 Оформить отчет о проделанной работе; 17 Защитить работу.
8.3 Содержание отчета
1 Цель, ход работы; 2 Постановка задачи, листинг программного модуля, результат работы
приложения;
3 Формулировка индивидуального задания; 4 Листинг программного модуля индивидуального задания, результат
работы приложения;
5 Вывод.
143
8.4 Контрольные вопросы
1 Охарактеризуйте основные понятия объектно-ориентированного
программирования;
2 Охарактеризуйте принципы объектно-ориентированного
программирования (полиморфизм, инкапсуляция, наследование);
3 Привести примеры программного описания принципов объектно-
ориентированного программирования;
4 В чем особенность использования технологии ado? 5 Как осуществить подключение базы данных к приложению, используя
компонент adoconnection?
6 Как организовать фильтрацию записей в таблице по определенному
полю?
7 Как организовать поиск записей в таблице по определенному полю?
8.5 Методические рекомендации
8.5.1 Подключение базы данных к приложению с помощью технологии ADO
Наряду с традиционными инструментами доступа к данным Borland Database
Engine и ODBC в приложениях Delphi можно применять технологию Microsoft
ActiveX Data Objects (ADO), которая основана на возможностях СОМ, а именно
интерфейсов OLE DB. По сути, ADO - это надстройка над технологией OLE DB,
посредством которой можно связываться с различными данными приложений
Microsoft.
Технология ADO завоевала популярность у разработчиков, благодаря
универсальности — базовый набор интерфейсов OLE DB имеется в каждой
современной операционной системе Microsoft. Поэтому для обеспечения доступа
приложения к данным достаточно лишь правильно указать провайдер соединения
144
ADO и затем переносить программу на любой компьютер, где имеется требуемая
база данных и, конечно, установленная ADO.
В палитре компонентов Delphi есть страница ADO, содержащая набор
компонентов, позволяющих создавать полноценные приложения БД, обращающиеся
к данным через ADO.
Основные компоненты вкладки ADO TADOConnection используется для указания базы данных и работы
транзакциями;
TADOTable – таблица доступная через ADO; TADOQuery – запрос к базе данных. Это может быть как запрос, в
результате которого возвращаются данные и базы (например, SELECT), так и запрос, не возвращающий данных (например, INSERT);
TADOStoredProc – вызов хранимой процедуры. В отличие от BDE и
InterBase хранимые процедуры в ADO могут возвращать набор данных, поэтому
компонент данного типа является потомком от TDataSet, и может выступать
источником данных в компонентах типа TDataSource;
TADOCommand и TADODataSet являются наиболее общими
компонентами для работы с ADO, но и наиболее сложными в работе. Оба
компонента позволяют выполнять команды на языке провайдера данных (так в ADO
называется драйвер базы данных).
Все компоненты должны связываться с базой данных. Делается это двумя
способами либо через компонент TADOConnection либо прямым указанием базы данных в остальных компонентах. К TADOConnection остальные компоненты привязываются с помощью свойства Connection, к базе данных напрямую через свойство ConnectionString.
Для примера создадим базу данных kadri.mdb в Microsoft Access для отдела
кадров предприятия. Поля для создаваемой таблицы Sotrudnik: код сотрудника
(Kod), фамилия (Fam), имя (Name), отчество (Otch), пол (Pol), дата рождения (Rozhd), образование (Obraz), домашний адрес (Adres), телефон (Tel).
Загружаем Delphi, создаем новый проект. Добавляем в модуль компонент
145
ADOConnection1 с вкладки ADO палитры компонентов. Этот компонент обеспечит связь других компонентов с базой данных при помощи механизма ADO. Связь обеспечивается свойством компонента ConnectionString.
Щелкнем дважды по свойству ConnectionString компонента ADOConnection.
Откроется окно подключения компонента к ADO:
Рисунок 43 – Окно подключения компонента к ADO
Выберем переключатель Use Connection String. Нажмем кнопку Build.
Открывается новое окно, содержащее настройки подключения.
146
Рисунок 44 – Окно настроек подключения
Предлагается выбрать поставщика OLE DB, или иначе, указать нужный для
подключения драйвер. Для связи с базой данных MS Access больше всего подходит " Microsoft Jet 4.0 OLE DB Provider ". Jet - это название механизма работы с СУБД,
встроенного в MS Access. Этот механизм поддерживает как собственные БД MS
Access, имеющие расширение *.mdb, так и ODBC. Его и выделяем в списке.
Нажимаем на кнопку Далее, либо переходим к вкладке Подключение. Здесь
нам нужно выбрать или ввести базу данных. Если мы выберем базу данных, то есть,
нажмем на кнопку с тремя точками, откроем диалог выбора и найдем там наш файл,
то база данных будет привязана к указанному адресу. Однако, в случае, если вы поместили файл с базой данных (в нашем случае kadri.mdb) там же, где находится
программа, и не желаем зависеть от определенной папки (ведь пользователь может
переместить нашу программу), то нужно вручную вписать только имя файла с БД,
147
без всякого адреса. В этом случае мы не сможем проверить подключение, нажав на
кнопку Проверить подключение. Укажем только имя файла - kadri.mdb. Нажмем на кнопку ОК.
Закрываем окно редактора связей. Однако перед этим переведем свойство LoginPrompt компонента ADOConnection в False. Если этого не сделать, то при каждой попытке соединиться с базой данных будет выходить запрос на пользовательское имя и пароль, а подключаемая база данных без пароля. Теперь свойство Connected переведем в True. Если удалось это сделать, и не вышло никаких сообщений об ошибке, то подключение состоялось.
Установим на форму компонент ADOTable с вкладки ADO. Компонент ADOTable предназначен для создания набора данных. В свойстве Connection указываем наш ADOConnection1 (можно просто выбрать из выпадающего списка). В свойстве TableName выбираем таблицу, которую нам необходимо вывести.
Установим компонент DataSource из вкладки Data Access палитры компонентов. Компонент DataSource предназначен для организации связи с наборами данных, и служит посредником между такими компонентами ADOTable, ADOQuery и между компонентами отображения данных DBGrid. Свойство DataSet этого компонента меняем на ADOTable1.
С вкладки DataControls поместим на форму компонент отображения данных
DBGrid (сетку, отображающую все данные набора данных в виде таблицы, и позволяющую редактировать их). Свойству DataSource присваиваем значение
DataSource1. С этой же вкладки поместим компонент DBNavigator ,
предназначенный для перемещения по записям набора данных, для вставки новой
записи или удаления старой, для перевода набора данных в режим редактирования
или для подтверждения сделанных изменений в наборе данных. Свойству
DataSource присваиваем значение DataSource1.
Значение свойства Active компонента ADOTable1 делаем равным true.
Внешний интерфейс приложения представлен на рисунке 45.
148
Рисунок 45 – Внешний интерфейс приложения
8.5.2 Организация поиска записей
Добавим компоненты на форму для организации поиска в таблице. Разместим
на форме компонент GroupBox1, меняем свойство Caption на значение Поиск по
фамилии. На компонент GroupBox1 помещаем Edit1. Далее в обработчике события OnChange однострочного редактора Edit1 организуем вызов метода Locate, который
позволяет произвести поиск нужной записи. Код обработчика события приведен ниже:
procedure TForm1.Edit1Change(Sender: TObject);
begin
ADOTable1.Locate('Fam', Edit1.Text, [loCaseInsensitive,loPartialKey]);
end;
Разберем код более подробно. Строка Table1.Locate организует поиск записи в таблице Sotrudnik. Первый параметр этой функции - поля, значения которых нужно проверять. В данном случае мы ищем запись по одному полю Fam (Фамилия). Второй параметр – это шаблон поиска, вводимое в поле Edit1 значение для поиска.
Третий параметр – опции поиска – имеет тип TLocateOptions и позволяет
149
задавать набор из двух параметров поиска: loCaseInsensitive и loPartialKey.
Установка первого из них отменяет чувствительность к регистру в текстовых полях,
а второй позволяет искать запись частично соответствующие заданному условию.
Функция Locate возвращает значение типа boolean, указывающее на успешность поиска.
8.5.3 Организация фильтрации записей
В отличие от методов поиска, предполагающих извлечение данных из
хранилища данных, фильтрация предполагает отбор уже извлеченных данных в
клиентском приложении. Для реализации данного подхода в Delphi в компонентах доступа к данным введены два свойства Filter и Filtered. Установка свойства Filtered типа boolean в true переводит компонент в режим фильтрации. В свойстве Filter при этом можно определить значение фильтра для отбора записей.
Параметры фильтрации можно задать с помощью свойств FilterOptions типа TFilterOptions. Это свойство принадлежит к множественному типу и может принимать комбинации двух значений:
foCaseIntensitive - регистр букв не учитывается;
foNoPartialCompare - выполняется проверка на полное соответствие
содержимого поля и значение, заданного для поиска. Обычно применяется для
строк. Если известны только первые символы или символ строки, то нужно указать
их в выражении фильтра, заменив остальные символы символом "*" и выключив
значение FoNoPartialCompare.
По умолчанию все фильтры выключены и свойство FilterOptions имеет
значение [].
Помещаем на форму компонент GroupBox2, меняем свойство Caption на значение Фильтр по образованию. На компонент GroupBox2 помещаем Edit2. Далее в обработчике события OnChange однострочного редактора Edit2 организуем назначение свойств Filter и Filtered, которые позволяют произвести фильтрацию
150
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]