如何将 QVariantMap 保存到 QSqlDatabase

问题描述

我已经有了可以使用的基础设施。有一个带有以下签名的插入函数

insert(const QString& key,const QVariant& value)

函数QsqlQuery 正在准备:

QsqlQuery query{MysqLDatabase};
QString sql = "INSERT INTO my_table(key,value) VALUES (:key,:value)"
query.prepare(sql);
query.bindValue(ENC(":key"),key);
query.bindValue(ENC(":value"),value.toString());

if (!query.exec()) {
    const auto error = q2.lastError();
    throw std::exception(QString("Failed to insert: %1")).arg(error.text()));
}

这适用于迄今为止使用的所有插入,但现在我试图插入一个 QVariantMap(这是 QMap<QString,QVariant> 的 typedef,实际上我试图保存 {{1 }} 类型):

QMap<QString,int>

在执行查询时,我收到以下错误

enter image description here

我一直在 Qt 网站和这里寻找解决方案,但没有找到可行的解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)