PDF Google Drive Downloader v1.1


Report a problem

Content text S3G12 База данных с графическим интерфейсом

Технологии программирования База данных с графическим интерфейсом 5 мая 2020 г. Факультет инфокоммуникационных сетей и систем Кафедра программной инженерии и вычислительной техники Петрова О. Б., Резников Б. К. Программное обеспечение S3G12 БАЗА ДАННЫХ С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ ъыъ.рф/аыЫЕ Цель работы Изучить средства стыковки приложения с графическим интерфейсом и базы данных. В работе используется приложение на базе библиотеки Qt, база данных на основе SQLite, команды языка SQL. Задание на лабораторную работу Разработать оконное приложение, управляющее простейшей базой данных. Структура базы данных задается в соответствии с заданием лабораторной работы (структуры) (Вариант задания выбирается согласно ТРПО. Варианты. Требуемые поля: id (int), 2 поля типа string, 2 поля типа int/float/double.). Приложение должно выполнять следующие функции: - создание новой базы данных или открытие созданной ранее, - добавление записи произвольного содержания в базу данных, - удаление записи с заданным номером из базы данных, - просмотр содержимого всей базы данных без сортировки, - вывод результатов двух запросов на выборку (фильтрация), - просмотр содержимого всей базы данных с сортировкой. Приложение должно использовать библиотеку Qt. База данных создается при помощи СУБД SQLite. Стыковка приложения и базы данных осуществляется при помощи модуля QtSql. Выполненную работу отправить в репозиторий на Git (по указанию преподавателя). По требованию преподавателя работу выполнять, сопровождая разработку коммитами в репозитории Git. Этапы выполнения работы 1. Создание каркаса приложения на основе GUI. 2. Редактирование формы. 3. Редактирование конструктора и деструктора класса QMainWindow. 4. Создание и реализация слотов. 1

Технологии программирования База данных с графическим интерфейсом 5 мая 2020 г. Факультет инфокоммуникационных сетей и систем Кафедра программной инженерии и вычислительной техники Петрова О. Б., Резников Б. К. setTable() - выбор таблицы для запроса. setFilter() - установление критерия отбора записей: setFilter(“year >= 2000”). setEditStrategy() - определение стратегии редактирования и записи данных. При значении параметра метода QSqlTableModel::OnRowChange запись занных выполняется при переходе к другой строке таблицы, QSqlTableModel::OnFieldChange — запись данных выполняется уже при переходе в к другой ячейке таблицы. select() - выполнение запроса. Таким образом, код QSqlTableModel model; model.setTable("tab1"); model.setFilter("year>=2000"); model.select(); эквивалентен запросу на SQL: SELECT * FROM tab1 WHERE year >= 2000; QSqlQuery — класс, предназначенный для создания запроса к базе данных Объект-запрос создается, когда открывается база данных, и при создании запроса надо указать, к какой базе данных относится запрос . Методы: clear() - очистка объекта-запроса, выполняется перед исполнением каждого нового запроса. exec() - исполнение запроса; запрос, сформулированный на SQL, передается как строковый параметр. За отображение данных отвечает класс QTableView — это визуальный компонент в Qt Creator. Классы QSqlTableModel и QTableView образуют структуру программы, называемую «модель-представление». Эта конструкция программного обеспечения позволяет отделить структуру данных и их хранилище от их визуального представления. Метод setModel() класса QTableView позволяет подключить данные из модели таблицы к представлению. Программирование взаимодействия приложения и базы данных требует выполнения следующих действий. Создание объекта базы данных и его подключение к базе данных Для примера, использована база данных SQLite: 3
Технологии программирования База данных с графическим интерфейсом 5 мая 2020 г. Факультет инфокоммуникационных сетей и систем Кафедра программной инженерии и вычислительной техники Петрова О. Б., Резников Б. К. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); Создание объекта для выдачи запросов и соединение его с базой данных: QSqlQuery* query = new QSqlQuery(m_db); Отсылка запроса: query.exec("INSERT INTO Person (number, name, salary) VALUES (1,'Ann', 25)") При повторном использовании объекта query его следует очистить: query->clear(); Создание объекта – модели таблицы для хранения результата запроса, полученного из базы m_db: QSqlTableModel* model; model = new QSqlTableModel(this,m_db); Связывание модели и конкретной таблицы в базе данных: model->setTable("Person"); Получение результата запроса: model->select(); Фильтрация в запросе: model->setFilter("Year>2000"); Вывод результатов запроса из модели на экран в таблицу: ui->tableView->setModel(model); где ui – идентификатор формы, tableView — таблица в форме. Создание простейшего приложения с базой данных Данный пример разработан в инструментальной среде разработки (IDE) Qt Creator. В примере создается приложение, взаимодействующее с базой данных, в которой находится таблица с именем Person, хранящая данные об идентификаторе записи ID, имени человека Name и годе приема на работу Year. Поля ID и Year сделаем целочисленными, Name — строкой. Приложение подключается в базе данных в начале работы программы, а если файл базы данных отсутствует, то приложение создаст новую базу данных. Также приложение будет выполнять добавление записей, удаление записей, просмотр базы и фильтрацию данных. Для решения задачи воспользуемся СУБД SQLite, т. к. она устанавливается вместе с Qt. Рассмотрим этапы создания приложения. 4

Related document

x
Report download errors
Report content



Download file quality is faulty:
Full name:
Email:
Comment
If you encounter an error, problem, .. or have any questions during the download process, please leave a comment below. Thank you.