QSqlQueryModel不能打开数据库

时间:2014-09-17 11:32:18

标签: c++ mysql qt qt4 qsqlquery

当我将从我的mysql数据库中查看数据时#34; mydb" ,从表格" testtable",它无法打开数据库。

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`;");

我错了什么?当我删除它,我的程序工作(没有查看数据) 当我可以打开它时,我如何将数据放入我的表格中? ?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

尝试一下:

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