我需要通过从QSqlTableModel对象中检索数据来填充QTableView。我用下面的命令来建立到SQL Server数据库的连接:调用QSqlTableModel setTable方法时出现“无法找到表”错误
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString connectionTemplate = "DRIVER={SQL Native Client};SERVER=%1;DATABASE=%2;Uid=username;Pwd=password;Trusted_Connection=Yes;";
QString connectionString = connectionTemplate.arg("localhost").arg("mydb");
db.setDatabaseName(connectionString);
我验证由QSqlDatabase类的方法的isValid()和open()的数据库连接。我也能够正确地从数据库表中进行查询。到目前为止,每件事情都可以。
QSqlTableModel* model = new QSqlTableModel(parent,db);
model->setTable("mytable");
qDebug() << model->lastError().text(); // the error message is printed on consul.
的方法可设置不工作,导致一个错误:无法找到表\“mytable的\”但是当我使用下面的命令问题就出现了。
在'mydb'数据库中是否有一个正好名为'mytable'的表?如果是这样,您可以从另一个SQL客户端成功查询它吗? – Edd
@Edd,是的,我拥有它。我可以通过QSQLQuery读取它的查询而没有任何问题。 –