В результате выполнения этого задания вы научитесь формировать запросы к БД при помощи QSqlQueryModel и QSqlTableModel, а также отображать полученные данные на форме приложения.
- Скачать проект с прекодом 08_PreDataBase.
- Добавить в CmakeList.txt модуль для работы с БД.
- Подключить в CmakeList.txt библиотеки из папки PG_Libs к проекту.
- Заменить на главной форме виджет QTableWidget, на необходимый для выполнения задания.
- Изменить существующие или добавить новые методы, необходимые для выполнения задания.
- Допускается добавить данные для подключения в конструктор DbData.
В объект QSqlTableModel необходимо передавать соединение с БД, только после добавления БД в класс QSqlDataBase.
"///Тут должен быть код ДЗ" данные комментарии носят рекомендательный характер. При необходимости методы можно модифицировать или добавлять новые.
В случае если вы подключаете динамические библиотеки, выбираете драйвер "QPSQL", но появляется ошибка "Driver not loaded", необходимо установить PostgreSQL (https://www.postgresql.org/download/) и прописать в системные пути пути к папкам PostgreSQL\15\bin и PostgreSQL\15\lib.
- Имя хоста: 981757-ca08998.tmweb.ru
- Имя БД: netology_cpp
- Порт: 5432
- Логин: netology_usr_cpp
- Пароль: CppNeto3
Для выполнения работы необходимо получить данные из таблицы под названием "film", которая состояит из 14 столбцов:
- film_id - ИД записи;
- title - название фильма;
- description - описание фильма;
- release_year - год выпуска;
- language_id - язык фильма, внешний ключ(ВК)
- original_language_id - оригинальный язык фильма, ВК
- rental_duration - доступная продолжительность аренды фильма, дней;
- rental_rate - цена в $ за день;
- length - продолжительность фильма, мин;
- replacement_cost - цена замены фильма;
- rating - возрастной рейтинг фильма;
- last_update - служебная информация, последнее одновление записи;
- special_features - дополнительные особенности фильма;
- fulltext - ключевые слова для поиска фильма.
Для получения категорий фильмов можно пользоваться запросом
SELECT title, description FROM film f JOIN film_category fc on f.film_id = fc.film_id JOIN category c on c.category_id = fc.category_id WHERE c.name = 'Comedy' ('Horror')
- Реализовать получение всех фильмов(в фильтре на главной форме выбрано значение "все" ) из БД при помощи объекта класса QSqlTableModel.
- Необходимо реализовать получение комедий и ужасов из БД при помощи объекта класса QSqlQueryModel.
- В таблице на главной форме должны отображаться:
- Столбцы "Название фильма" и "Описание фильма".
- Присутствовать заголовки столбцов.
- При нажатии на кнопку "Очистить" таблица должна очищаться.
Вместо предложенной формы подключения к БД добавьте в проект собственную форму, разработанную в домашнем задании по теме "Виджеты".
- Отправлена ссылка на репозиторий с кодом ДЗ
- Реализованы механизмы получения фильмов при помощи объектов класса QSqlTableModel и QSqlQueryModel.
- Программа работает стабильно.
- Выполняются все требования из задания.