c++ - 如何将 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()));
}
这适用于迄今为止使用的所有插入,但现在我正在尝试插入 a QVariantMap
(这是 的 typedef QMap<QString,QVariant>
,实际上我正在尝试保存QMap<QString,int>
类型):
insert(g_theKey, QVariant(m_theMap));
执行查询后,我收到以下错误:
我在 Qt 网站和这里都在寻找解决方案,但还没有找到可行的解决方案。
解决方案
推荐阅读
- vb.net - 跳过 CSV 文件的第一行 (Headers) Visual Basic
- ssl - 证书无效的 SSL 保护 (HTTPS) 网站
- sed - 使用 SED,如何在文件最后一行的开头添加“#”?
- javascript - 如何为 React Array.map() 迭代应用 CSS 动画?
- java - 测试弹簧休息异步控制器时出错
- android - 以编程方式更改主显示分辨率
- c# - 如何从视图中获取数据
- laravel - Laravel 和 Vue 是否总是使用 RESTful API 进行通信?
- hybris - 我可以在 ZK 中为 Listitem 创建一个可扩展的 Listbox 吗?
- elasticsearch - 如何在不达到 Elasticsearch 限制的情况下处理拆分的文档