我需要通過從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讀取它的查詢而沒有任何問題。 –