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

лаба 4

.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
508.66 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное

учреждение высшего образования

«Юго-Западный государственный университет»

Лабораторная работа №4

По дисциплине: «Безопасность систем баз данных»

Тема: «Разработка клиентского интерфейса.»

Выполнил: Рохтин Я.А.

студент группы ИБ-21б

Проверил: Посканный М.В.

Ассистент

Курск, 2024

Цель работы

Получить доступ к данным СУБД, разработать клиентское приложение с удобным пользовательским интерфейсом, позволяющим осуществлять просмотр, выборку и изменение содержимого БД. Формирование отчетов средствами клиентского приложения

Ход работы

Перед началом выполнения лабораторной работы необходимо установить программное обеспечение Delphi 7 и дополнительный компонент ehlibrus, который обеспечит необходимые инструменты для работы с библиотеками. После завершения установки следует перейти в раздел "Инструменты" программы Delphi, открыть меню "Библиотека" и указать путь к папке с компонентом ehlibrus (Рис. 1), чтобы система могла корректно распознавать библиотеку. Затем требуется запустить файл библиотеки "DclEhLib70.dpk".

Рисунок 1 – выбор директории для установки EhLib.

После запуска "DclEhLib70.dpk" в открывшемся меню необходимо нажать на кнопку “Install” для окончательной установки и активации. (Рис. 2)

Рисунок 2 – установка EhLib в Delphi.

Если процесс установки прошел без ошибок, то в обозревателе компонентов появится ярлык “EhLib” с небольшим набором инструментов.

Запускаем Delphi и создаем новый проект. Для удобства возьмем компонент PageControl из вкладки Win32, с 3 страницами для каждой таблицы базы данных, которые можно добавить из контекстного меню (Рис. 3).

Рисунок 3 – процесс добавления страниц.

Перейдем к созданию модуля данных: во вкладке “Файл” найдем пункт “Модуль данных” и откроем его. Добавим компоненты: TDataSource (из вкладки Data Access), TADOConnection и TADOQuery (из вкладки ADO) на модуль данных (Рис. 4).

Рисунок 4 – добавление компонентов в модуль данных.

Связываем TADOQuery с TADOConnection в свойстве Connection, а TDataSource — с TADOQuery через свойство DataSet. (Рис. 5)

Рисунок 5 – создание связей компонентов.

  • TDataSource связывает сетку отображения с БД;

  • TADOConnection отвечает за подключение к БД;

  • TADOQuery — за получение данных.

Выделяем компонент TADOConnection, в свойстве ConnectionString нажимаем кнопку с «…». Нажимаем «Build», после чего появится окно «Свойство связи с данными». Выбираем провайдера Microsoft OLE DB Provider for SQL Server и нажимаем «Далее». (Рис. 6)

Рисунок 6 – выбор провайдера.

Во вкладке "Соединение" указываем имя сервера, имя пользователя, пароль от SQL Server Management Studio, и выбираем нашу БД. Нажимаем "Проверить подключение". Если все правильно, появится окно с успешной проверкой подключения. (Рис. 7).

Рисунок 7 – успешное соединение с БД.

В свойстве ACTIVE компонента TADOConnection устанавливаем значение True. После заходим в свойства TADOQuery, выбираем свойство SQL и нажимаем кнопку с «…». Вводим запрос: “select * from chitatel” для выборки всех столбцов таблицы chitatel базы данных. Затем устанавливаем свойство ACTIVE в положение True.

Теперь, когда установили контакт с сервером, переходим к созданию интерфейса: на активную страницу компонента PageControl добавляем компонент GroupBox из вкладки Standard и компонент PageControl. В Object Inspector указываем в поле Caption для GroupBox текст "Поиск", а для поля Align выбираем значения alTop.

Между компонентами GroupBox и PageControl добавляем компонент DBGridEh из вкладки EhLib. В DBGridEh для поля Align указываем alClient.

Заполним GroupBox "Поиск", добавив компоненты ComboBox, Edit и Button (из Standard). Кнопке дадим название "Искать", текст в Edit очистим. Также добавим новые листы на компонент PageControl: добавить/изменить, удалить, сортировка, печать. В итоге получаем макет из добавленных компонентов. (Рис. 8)

Рисунок 8 – готовый макет из добавленных компонентов.

Данная последовательность шагов повторяется для всех таблиц, которые необходимо отобразить в клиентском приложении.

Из вкладки EhLib помещаем следующие компоненты:

PrintDBGridEh — компонент для печати содержимого DBGridEh. В параметре DBGridEh компонента PrintDBGridEh выбираем необходимый нам DBGridEh.

Затем связываем нашу базу данных с DBGridEh: в параметре DataSource компоненты DBGridEh выбираем нужный DataSource, но перед этим в файле Unit1.pas в разделе uses прописываем Unit2. Если все предыдущие шаги были выполнены верно, то в итоге увидим отображение таблицы нашей БД. (Рис. 9)

Рисунок 9 – связь БД с DBGridEh.

Отредактируем отображение. Выполним двойной клик на компоненте DBGridEh, после чего откроется окно Editing DBGridEh1.Columns. В нем откроем опцию “Add all fields”.

В окне Editing DBGridEh1.Columns мы видим поля таблицы, которые можно редактировать в инспекторе объектов. Мы можем изменить параметры полей, такие как Title.Caption (заголовок поля), Visible (показывать/не показывать поле) и Width (ширина поля). Настроив эти параметры, мы приведем DBGridEh в оформленный вид, что улучшит восприятие. (Рис. 10)

Рисунок 10 – улучшенный вид интерфейса.

Проделаем предыдущие шаги для отображения остальных таблиц нашей базы данных.

Настроим поиск по таблице базы данных. Для этого добавляем в ComboBox1.Items необходимые поля таблицы, которые будем использовать для поиска: ФИО читателя, адрес, дата рождения, пол, место работы. Пропишем в кнопку “Искать” предложенный код, необходимый для обработки нажатия. Данный код описывает процедуру поиска по всей таблице и по каждому полю. Аналогично для остальных таблиц БД.

Перейдем к процедуре добавления данных в базу. Для этого на листе "Добавить/Изменить" добавим 5 DBEditEh из вкладки EhLib и 5 Label из вкладки Standard, а также одну кнопку Button. (Рис.11) Эти элементы будут использоваться для ввода новых данных и их сохранения в базе данных.

Рисунок 11 – добавленные компоненты ввода данных.

Далее, в свойствах DBEditEh1 устанавливаем DataSource как DataModule2.chitatelDataSource, а в поле DataField выбираем ФИО читателя. Аналогичную операцию выполняем для остальных DBEditEh, оставляя то же значение DataSource, но устанавливая соответствующие значения в поле DataField для каждого элемента. Таким образом, каждый элемент будет связан с конкретным полем таблицы базы данных. (Рис. 12)

Рисунок 12 – сопоставление поля DataField с полями таблицы.

Далее открываем SQL и выбираем опцию "Создать запрос". В открывшемся окне вписываем предложенный SQL-код для создания процедуры. Эта процедура будет использоваться для выполнения операций с базой данных, что упростит код в Delphi. Если не было обнаружено ошибок, то нам выведется сообщение об успешном выполнении команд. (Рис. 13)

Рисунок 13 – успешное выполнение команд.

Переходим обратно в Delphi. Открываем DataModule и переходим во вкладки: Вид, Формы, DataModule2.

Добавляем на DataModule компонент TADOQuery, переименовываем его в HelpQuery. В свойстве Connection указываем ADOConnection1, в SQL вводим запрос (SELECT * FROM chitatel). Устанавливаем ACTIVE в положение TRUE. (Рис. 14)

Рисунок 14 – настройка созданного HelpQuery.

Перейдем к кнопке Добавить из вкладки “Добавить/Изменить”. В процедуру обработки нажатия вставим предложенный код.

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

Создадим процедуру удаления: на листе "Удалить" в компоненте PageControl добавим кнопку и DBComboBoxEh из вкладки ADO. Устанавливаем для DBComboBoxEh свойства: DataSource — DataModule2.chitatelDataSource и DataField — ФИО читателя. Также необходимо создать дополнительную форму для подтверждения удаления. (Рис. 15)

Рисунок 15 – форма удаления элемента таблицы.

Прописываем необходимый код для каждой кнопки: да, нет, удалить. (Рис. 16) В итоге получаем рабочую систему удаления данных.

Рисунок 16 – код удаления для кнопки “Да”.

Перейдем к реализации процедуры сортировки. Сделаем сортировку по ФИО читателя. На листе "Сортировка" добавим компонент DBCheckBoxEh из вкладки Ehlib. В его свойствах DataSource и DataField устанавливаем значения DataModule2.chitatelDataSource и ФИО читателя соответственно. Меняем свойство Caption для отображения нужной подписи.

Создадим процедуру обработки нажатия по DBCheckBoxEh, добавим необходимый код. (Рис. 17)

Рисунок 17 – код для обработки нажатия по CheckBoxEh.

Опишем процесс вывода результата запроса из базы данных на принтер, при помощи компонента PrintDBGridEh. В его параметрах уже стоит нужный нам DBGridEh. Создадим процедуру для кнопки “Распечатать”, вставив туда предложенный код. Если все прошло успешно и ошибок не было обнаружено, то “запустим” наш шаблон и проверим кнопку “Распечатать”. (Рис. 18)

Рисунок 18 – результат работы кода кнопки “Распечатать”.

Приступим к созданию произвольных запросов. Открываем DataModule2, помещаем туда 2 вспомогательных компонента: ADOQuery1 и DataSource1. Для каждого из них выбираем настройки: для ADOQuery1 – в свойстве Connection ставим ADOConnection1, в свойстве SQL пишем любой запрос (select * from chitatel), также ставим значение ACTIVE – True. Для DataSource1 выставляем свойство DataSet – ADOQuery1 (Рис. 19)

Рисунок 19 – параметры ADOQuery1.

Переходим к главному PageControl. Создаем новый лист "Произвольная таблица". Добавляем GroupBox с заголовком "Произвольный запрос". В GroupBox добавляем “Memo” с параметром ScrollBars = ssVertical. Размещаем две кнопки: "OK" и "РАСПЕЧАТАТЬ". Добавляем DBGridEh (свойства: DataSource = DataModule2.DataSource1, Align = alClient). На форму добавляем PrintDBGridEh и связываем с DBGridEh. (Рис. 20)

Рисунок 20 – добавленные элементы на листе “Произвольная таблица”

Добавим предложенный код для кнопки “Распечатать” и кнопки “ОК”. Эта процедура позволяет вводить произвольный SQL-запрос в Memo, результат которого отобразится на листе "Произвольная таблица" в PageControl.

Таким образом, база данных SQL была успешно подключена к Delphi 7 с помощью компонентов ADO, что позволяет взаимодействовать с базой данных напрямую из приложения.

Для автоматического открытия окна "Свойство связи с данными" при запуске приложения в Delphi, нужно использовать компонент ADOConnection. Для этого в коде приложения при запуске можно вызвать метод ConnectionString с настройками подключения. Окно "Свойства связи с данными" откроется, где пользователь сможет выбрать провайдера (Microsoft OLE DB Provider for SQL Server), указать имя сервера, имя пользователя, пароль и выбрать базу данных.

Откроем DataModule2 и выберем ADOConnection для которого в настройках событий запишем процедуру обработки OnWillConnect. (Рис. 21)

Рисунок 21 – код для события компонента ADOConnection1.

Данная настройка позволяет упростить процесс настройки соединения с базой данных SQL Server прямо в Delphi.

Заключение

В ходе выполнения лабораторной работы была разработана клиентская программа для взаимодействия с базой данных с использованием среды разработки Delphi и СУБД SQL Server. В процессе разработки получили поверхностные знания о работе с основными компонентами Delphi, такими как ADOQuery, DataSource, DBGridEh, и познакомились с принципами их интеграции для полноценного взаимодействия с базой данных.

Изучили процесс проектирования пользовательского интерфейса и научились связывать интерфейсные элементы с базой данных для выполнения операций по просмотру, выборке и изменению данных. Кроме того, реализовали возможность ввода произвольных SQL-запросов и отображения их результатов через компонент Memo, что добавило гибкости в работу с базой данных.

Познакомились с процессом подключения клиентского приложения к базе данных через Microsoft OLE DB Provider для SQL Server, что позволило обеспечить надежное и стабильное соединение с сервером базы данных. Важной частью работы стало автоматизирование выбора параметров подключения при запуске программы, что облегчило работу с базой данных.

Таким образом, в результате выполнения работы получили практические навыки по проектированию клиентских приложений для работы с базой данных, научились осуществлять операции по выборке, изменению и управлению данными, а также разработали функциональные инструменты для создания отчетов. Это позволило создать удобное и интуитивно понятное приложение, которое эффективно взаимодействует с базой данных SQL Server.

Соседние файлы в предмете Безопасность систем баз данных