Reputation: 18117
I am using the following approach to show the result of a select statement in the QTableView
. How should I modify this code to show the result of two or more different select statements in the same 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);
I need to append the data selected from the same table in another database test2.db
to the data already shown in the tableView
.
Upvotes: 3
Views: 2556
Reputation: 180020
To append the result of one query to another, use a compound SELECT statement:
SELECT * FROM MyTable
UNION ALL
SELECT * FROM MyOtherTable
This requires that the subselects have the same number of columns.
If the other table is in another database, you must ATTACH it to the first one:
db.exec("ATTACH '/somewhere/else/test2.db' AS test2");
...
query->prepare("SELECT * FROM MyTable UNION ALL SELECT * FROM test2.MyTable");
Upvotes: 1