У меня есть небольшая функция, как этотQVariant возвращает недопустимое тем значение является действительным
bool QcgDatabase::onceindb(const QString& userId)
{
mDb->prepareSqlQuery("SELECT count(*) FROM mytable WHERE userid=:userId;", "database");
mDb->prepareBindValue(":userId", userId);
mDb->sqlExec();
bool d = mDb->sqlQuery().isActive();
QVariant c = mDb->sqlQuery().value(QString("count(*)"));
int e = c.toInt();
if (e == 1) {
return true;
}
else {
return false;
}
}
Когда я делаю эту команду SQL, результат выглядит следующим образом
Я просто хочу взять значение 2
для сравнения ниже, но в коде, когда я отлаживаю, QVariant c
всегда возвращает недействительный, поэтому e is always = 0
. Я думал, что моя команда SQL не активна, но когда я отлаживаю, bool d
всегда возвращает true. Вы, ребята, знаете почему? как я могу получить 2
, как и ожидалось?
'если (с == 1) 'это должно быть' if (e == 1) '? –
Вероятно, вы должны проверить наличие ошибок ... – hyde
@HonestAbe: да, извините, это должно быть 'e == 1'. Я уже исправляю это. Не могли бы вы помочь мне указать на проблему? – htmlamateur