0
爲什麼query.next()
返回false,query.isSelected()
和query.isActive()
返回true。列號和索引EventNote
的數據是正確的。爲什麼QSqlQuery query.next()返回false
下面是代碼:
QVector<QString> DataBase::GetEventNote(int eventId)
{
QSqlQuery query;
query.prepare("SELECT * FROM Events WHERE idEvent=(?)");
query.addBindValue("eventId");
if(!query.exec()) // -> returns true
{
QMessageBox mb;
mb.setText(query.lastError().text());
mb.setWindowIcon(QIcon("icon.png"));
mb.exec();
}
QVector<QString> debug1;
bool v = query.isValid(); // -> returns false
bool s = query.isSelect(); // -> returns true
bool a = query.isActive(); // -> returns true
bool b = query.first(); // -> returns false
bool l = query.last(); // -> returns false
bool p = query.previous(); // -> returns false
QSqlRecord sr = query.record();
int brsr = sr.count(); // -> returns correct number of columns
QString str = query.lastQuery();
const QSqlResult *r =query.result();
int nameCol = sr.indexOf("EventNote"); // index of the field "EventNote" is correct (index 5)
while (query.next()) // -> returns false
{
QString debug2 = query.value(nameCol).toString(); // output all EventNote
debug1.push_back(debug2);
}
return debug1;
}
但爲什麼然後: 'QSqlRecord sr = query.record(); int brsr = sr.count(); // - >返回正確的列數' 返回正確的列數? – user2944505
這很奇怪,你是否嘗試刪除查詢,第一次(),最後等,並做一個簡單的查詢,沒有綁定值? – Kikohs
如果我刪除query.first(),last()...我是一樣的,query.next()返回false,如果我不綁定值quary.exec()然後返回false。這真的很奇怪,因爲我使用了這麼多次,並且沒有任何問題 – user2944505