Russian Qt Forum

Qt => Базы данных => Тема начата: stas3638 от Октябрь 12, 2015, 12:23



Название: Qt MySQL. Ошибка MySQL 2031 при выполнении запроса update
Отправлено: stas3638 от Октябрь 12, 2015, 12:23
Необходимо обновлять ячейку в таблице, но появляется ошибка. До этого делал подобный запрос (там я добавляю запись с переменными типа Date и Time), но тут ни в какую не хочет нормально выполняться.
Qt5, Qt Creator 5.4
Код:
query.prepare("update credits set NextPayDate = ? where PersonID = ?;");
//credits - сама таблица, NextPayDate - типа DATE,
//PersonID - ключевое поле INT (в нем ошибки точно никакой, до и после этого кода используется без ошибок)
QDate NextPayDate = QDate::currentDate().addDays(Period == 0 ? 1 : Period);
//считаем дату, не вникайте в суть, условно скажем, что Period = 30
query1.addBindValue(NextPayDate);
qDebug() << NextPayDate;
//выводит корректную дату в консоль, тут никаких проблем
query.addBindValue(IndividualID);
query.exec();
//QSqlError("2031", "QMYSQL3: Unable to execute statement", "No data supplied for parameters in prepared statement")
//Не могу понять, в чем суть ошибки


Название: Re: Qt MySQL. Ошибка MySQL 2031 при выполнении запроса update
Отправлено: Old от Октябрь 12, 2015, 12:37
А почему готовите query
Код
C++ (Qt)
query.prepare("update credits set NextPayDate = ? where PersonID = ?;");

а биндите query1?
Код
C++ (Qt)
query1.addBindValue(NextPayDate);


Название: Re: Qt MySQL. Ошибка MySQL 2031 при выполнении запроса update
Отправлено: stas3638 от Октябрь 12, 2015, 15:00
Ужас, какой же я невнимательный. Спасибо огромное :)

А почему готовите query
Код
C++ (Qt)
query.prepare("update credits set NextPayDate = ? where PersonID = ?;");

а биндите query1?
Код
C++ (Qt)
query1.addBindValue(NextPayDate);