Qt-C++ - Урок 006. QSqlQueryModel - Таблици в Qt, използващи SQL заявки

Използването наQSqlQueryModel за генериране на таблици в Qt е най-твърдата опция с най-ниско ниво на абстракция от използването наQSqlTableModel илиQSqlRelationalTableModel. Но с всичко това, това е и най-гъвкавият вариант, който изисква по-задълбочено познаване на езика на SQL заявките. В предишната статия бяха построени две таблици:

Структура на проекта за QSqlQueryModel

Структурата на проекта QSqlQueryModel остава същата като в предишната статия.

mainwindow.ui

Таблиците също се използват както в предишната статия, нека си припомним имената им:

Файлът се използва в проекта, като се създава по подразбиране.

mainwindow.h

Този файл включва библиотекатаQSqlQueryModel, докато класоветеQSqlRelationalTableModel,QSqlRelationalDelegate иQSqlRelation няма да бъдат използвани. Сигнатурата на методите за инициализация на модела също се променя, тъй като няма метод за обектаQSqlQueryModel за задаване на името на таблицата, до която този обект ще има достъп.

mainwindow.cpp

Основната разлика между кода в този изходен файл и кода в предишната статия е, че методите за инициализиране на модели използват SQL заявка, която се изпълнява от методаsetQuery().

За да се актуализират данните в таблицата, е необходимо да се повтори SQL заявката. Това става чрез извикване на методаquery() на модела, който има методlastQuery(), както е показано в кода по-долу:

Заглавният файл за класа, който действа като фасада за работа с базата данни, се променя само с два реда в сравнение с предишната статия. Промените са в кода по-долу:

база данни.cpp

В този файл само двеметоди, които работят сГлавна таблица. Поради факта, че броят на колоните, които се прилагат в тази таблица, се е променил.

Вашият визуален резултат не трябва да се различава от това, което сте получили в предишния урок. Това ще бъде прозорец с две маси.

qsqlquerymodel

Споделен хостинг с 10 процента отстъпка

Препоръчани статии по тази тема