gpt4 book ai didi

c++ - 如何使用 QSqlQueryModel 在 QTableView 中显示多个选择的结果

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:08 25 4
gpt4 key购买 nike

我使用以下方法在 QTableView 中显示 select 语句的结果。我应该如何修改此代码以在同一 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 中的数据。

最佳答案

要将一个查询的结果附加到另一个查询,请使用 compound SELECT statement :

SELECT * FROM MyTable
UNION ALL
SELECT * FROM MyOtherTable

这要求子选择具有相同的列数。

如果另一个表在另一个数据库中,则必须ATTACH它到第一个:

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

关于c++ - 如何使用 QSqlQueryModel 在 QTableView 中显示多个选择的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18182122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com