Из того, что я понял, это ошибка в вашей базе данных/запросе, и я пробовал следующее в браузере БД для Sqlite, и это работает:
UPDATE odgovori SET odgovor="1131" WHERE korisnik_ID="2" AND pitanje_ID="1";
INSERT INTO odgovori (korisnik_ID, pitanje_ID, odgovor) SELECT "2", "1", "1" WHERE (SELECT Changes()=0);
но когда я пытаюсь это сделать в QT:
Q_ASSERT(qry.driver()->hasFeature(QSqlDriver::NamedPlaceholders));
qry.prepare("UPDATE odgovori SET odgovor=:odgovor WHERE korisnik_ID=:korisnik_ID AND pitanje_ID=:pitanje_ID;"
"INSERT INTO odgovori (korisnik_ID, pitanje_ID, odgovor) SELECT :korisnik_ID, :pitanje_ID, :odgovor WHERE (SELECT Changes()=0);");
qry.bindValue(":odgovor", odgovor);
qry.bindValue(":korisnik_ID", id);
qry.bindValue(":pitanje_ID", QString::number(pitanjeid));
qry.exec();
qDebug()<<qry.lastError();
Я получаю QSqlError("", "Parameter count mismatch", "")
. Я пробовал с ?
и qry.addBindValue
и получил тот же результат. Что мне не хватает?
qry
? - person thibsc   schedule 02.09.2020QSqlQuery qry;
- person Ivan Pejić   schedule 02.09.2020bindValue
шесть раз, а не три раза? - person wthung   schedule 02.09.2020