Я работаю с SQLite, делаю вставку в таблицу. Folowwing
QSqlQuery testQuery(QString("INSERT INTO test(testcol) VALUES(?)"));
testQuery.bindValue(0, someQStringObg);
testQuery.exec();
работает, но
QSqlQuery testQuery(QString("INSERT INTO test(testcol) VALUES(:val)"));
testQuery.bindValue(":val", someQStringObg);
testQuery.exec();
нет. testQuery.lastError (). text () возвращает Нет запроса Невозможно получить строку
Понятия не имею, почему все так, но очень хочется это выяснить.
Пожалуйста, используйте подготовить как официальный пример:
QSqlQuery testQuery;
testQuery.prepare("INSERT INTO test(testcol) VALUES(:val)");
testQuery.bindValue(":val", someQStringObj);
testQuery.exec();
Причина ошибки заключается в том, что запрос был выполнен до привязки к соответствующему заполнителю. Вы можете увидеть соответствующую часть конструкторская документация:
Если запрос не является пустой строкой, он будет выполнен.
Других решений пока нет …