#c #qt #qsqlquery
#c #qt #qsqlquery
Вопрос:
В настоящее время я сталкиваюсь с ошибкой, из-за которой я получаю «Несоответствие количества параметров» из query.lastError, мои значения привязки верны (я их тестировал).
Мой запрос:
QSqlQuery query(DBT);
query.prepare("SELECT Foto, Nombre, Apellido1, Apellido2, Curso, Grupo, FotoHuella FROM usuarios WHERE Nombre=:nombre1 OR Apellido1=:apellido1 OR Apellido2=:apellido2 OR Curso=:curso1 OR Grupo=:grupo1");
query.bindValue(":nombre1", nombre, QSql::Out);
query.bindValue(":apellido1", apellido1, QSql::Out);
query.bindValue(":apellido2", apellido2, QSql::Out);
query.bindValue(":curso1", curso, QSql::Out);
query.bindValue(":grupo1", grupo, QSql::Out);
query.exec();
На случай, если вам интересно, вот где я настраиваю базу данных:
QSqlDatabase DBT=QSqlDatabase::addDatabase("QSQLITE");
DBT.setDatabaseName("/home/pi/FoodCircleDBT.db");
DBT.open();
Заранее спасибо.
Комментарии:
1. Согласно этой
QSql::ParamType
ссылке , значениеQSql::Out
равно «Параметр bind используется для получения данных из базы данных». Ваши параметры предназначены не для этого. Попробуйте использоватьQSql::In
вместо этого (который используется по умолчанию дляbindValue
).2. Точно, или просто не используйте 3-й параметр вообще.
Ответ №1:
Решение для меня: на самом деле все, что касается кода, работало отлично, но каким-то образом моя схема базы данных сошла с ума, когда я отредактировал ее с помощью программы для баз данных. Поэтому, если вы столкнулись с этим, я рекомендую вам открыть командную строку и проверить вашу схему.