0
我試圖使用QSqlQueryModel
以檢索從我的數據庫的一些值喜歡這樣:QSqlQueryModel抱怨說,我的數據庫沒有打開
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "test1");
db.setHostName(Vars::strDbHost);
db.setDatabaseName(Vars::strDbName);
db.setPort(Vars::strDbPort);
db.setUserName(Vars::strDbUsername);
db.setPassword(Vars::strDbPassword);
db.open()
QSqlQueryModel model;
model.setQuery(QString("SELECT * FROM users WHERE login=%2").arg(Vars::strUserLogin));
但我不斷收到一個QSqlQuery::exec: database not open
錯誤。
這是爲什麼,我該如何正確使用QSqlQueryModel
來檢索我想要的值?
'如果qDebug()<< db.lastError()文本();'(db.open()!)。另外,你在哪裏設置你的數據庫爲模型? – Amartel
我沒有在問題中添加它,但我確實確保數據庫已打開並且不返回任何錯誤。我實際上嘗試過同樣的事情,但用查詢,並沒有問題。 – dearn44
您正在調用'setQuery'的錯誤版本。這隻適用於具有默認名稱的db。在你的情況下,你需要調用'void \t setQuery(const QString&query,const QSqlDatabase&db)' – Amartel