void updateDB(const int id, const QString& column, const QVariant& value) const
//*****
//all stuff on open DB etc.
QSqlQuery query;
query.prepare(\"UPDA
Correct code here would be:
query.prepare(QString("UPDATE table SET %1 = :value WHERE id = :id ").arg(column));
query.bindValue(":value", value);
You bind values, not fields names.
P.S.: answered before reading whole question. Yes, you are right - there is no way to use bindValues to bind columns, not only for sqlite, but for each db.