Как показать результат множественного выбора в QTableView, используя QSqlQueryModel

Я использую следующий подход, чтобы показать результат выбора оператора в QTableView, Как я должен изменить этот код, чтобы показать результат двух или более различных операторов выбора в одном и том же QTableView?

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
QString dbPath = "test1.db";
db.setDatabaseName(dbPath);

QSqlQueryModel *model = new CustomSqlModel();

QSqlQuery* query = new QSqlQuery(db);
query->prepare("SELECT * FROM MyTable");
query->exec();

model->setQuery(*query);
model->setHeaderData(0, Qt::Horizontal, "Col1");
model->setHeaderData(1, Qt::Horizontal, "Col2");
model->setHeaderData(2, Qt::Horizontal, "Col3");

QTableView* tableView = new QTableView();
tableView->setModel(model);

Мне нужно добавить данные, выбранные из той же таблицы в другой базе данных test2.db к данным, уже показанным в tableView,

1

Решение

Чтобы добавить результат одного запроса в другой, используйте составной оператор SELECT:

SELECT * FROM MyTable
UNION ALL
SELECT * FROM MyOtherTable

Это требует, чтобы подвыборы имели одинаковое количество столбцов.

Если другая таблица находится в другой базе данных, вы должны ПРИКРЕПЛЯТЬ это к первому:

db.exec("ATTACH '/somewhere/else/test2.db' AS test2");
...
query->prepare("SELECT * FROM MyTable UNION ALL SELECT * FROM test2.MyTable");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]