Как Подготовить запрос sql QT?

351
31 июля 2021, 02:10

есть такой вопрос, хочу сделать UPDATE запрос к базе данных, для этого нужно подготовить запрос, но помимо подстановки данных, я хочу подставить так же имя столбца вот так:

query.prepare("UPDATE items SET :n=:m WHERE id=:d");
query.bindValue( ":n", l[2]);
query.bindValue( ":m", l[1]);
query.bindValue( ":d", l[0]);

однако, такой запрос не выполняется, хотя если убрать :n вот так:

query.prepare("UPDATE items SET name=:m WHERE id=:d");
query.bindValue( ":m", l[1]);
query.bindValue( ":d", l[0]);

запрос выполняется корректно, мой вопрос заключается в следующем: как я могу подготовить sql запрос подставляя не только данные для вставки, но и имя столбца для вставки?

Answer 1

Проще всего использоваться уже готовую строку и подставить в ней аргументы (на деле QSqlQuery делает это у себя внутри)

QString queryStr = QString("UPDATE items SET %1=%2 WHERE id=%3")
        .arg(l[2])
        .arg(l[1])
        .arg(l[0]);
QSqlQuery query;
query.exec(queryStr);
READ ALSO
как разыменовать двойной указатель на класс

как разыменовать двойной указатель на класс

есть указатель на массив объектов s и указатель на s

110
ofstream. Записать char в начало файла

ofstream. Записать char в начало файла

Собственно, есть std::ofstream file

110
Ошибка “Stack around the variable was corrupted”

Ошибка “Stack around the variable was corrupted”

Есть такой код, которые считает свободное место на диске:

146
Как Исправить функцию click

Как Исправить функцию click

добрий день надо написать предупреждения про переход на другую страницу на мобильной версии при клике есть функция на jquery при клик

150