QSqlQueryModel无法打开数据库

问题描述 投票:0回答:2

[当我从“ testtable”表中查看我的mysql数据库“ mydb”中的数据时,它无法打开数据库。

this->model = new QSqlQueryModel();
            meineView->setModel(model);

我必须这样写:

 model->setQuery("SELECT id, Nachname, Vorname, Ort FROM mydb");

还是这样? :

 model->setQuery("SELECT `testtable`.`id`,`testtable`.`Nachname`,`testtable`.`Vorname`,`testtable`.`Ort`FROM `mydb`.`testtable`;");

我怎么了?当我删除它时,我的程序正常工作(不查看数据)当我可以打开它时,如何将数据放入表中? ?

c++ mysql qt qt4 qsqlquery
2个回答
0
投票

首先,您需要使用QSqlDatabase类连接到数据库。然后您可以使用适当的sql查询将QSqlQueryModel连接到sql连接。

您的第一个查询是错误的,因为mydb是数据库,此查询需要表名:

SELECT id, Nachname, Vorname, Ort FROM testtable

第二个查询是在查询引用多个表时选择的选项。

SELECT testable.id, testable.name, othertable.data FROM testable, othertable, WHERE testable.someRow = othertable.someRow


0
投票

您需要使用数据库名称调用替代方法。因为您尝试打开的数据库不是默认数据库。

尝试一下:

model->setQuery("SELECT `testtable`.`id`,`testtable`.`Nachname`,`testtable`.`Vorname`,`testtable`.`Ort
`FROM `mydb`.`testtable`;","mydb");
© www.soinside.com 2019 - 2024. All rights reserved.