gpt4 book ai didi

qt - 将 QList 存储到 Qt 中的 PostgreSQL 数据库

转载 作者:行者123 更新时间:2023-11-29 12:46:41 27 4
gpt4 key购买 nike

我的问题与此类似:link除了我不想序列化 QList。我想将 QList 作为 double 组存储在数据库表中。

我正在为变量 val 尝试以下 bindValue 命令:

query.bindValue( QStrFromSrcEnc( id ), QVariant::fromValue( val ) );

其中 val 是 QList,id":value"

我正在执行以下 postgres 查询:

"INSERT INTO valtable( type_id, asset_id, value, tag )\n"
"VALUES ( :typeId, :assetId, :value, :tag )\n"

表的value 列是 double [] 类型。

我收到以下错误,如您所见,value 的第三个字段为空,这意味着 val 未正确绑定(bind)。

ERROR: syntax error at or near ","
LINE 1: EXECUTE qpsqlpstmt_13e (60, 63, , '')
^

但是,如果 val 只是一个 QVariant,那么它工作正常。

最佳答案

好的,我做了一个解决方法。我将 QList 列表转换为 postgres 数组格式的 QString(例如“{1.32,4.43}”)。

QString valueStr = QStrFromSrcEnc("{");

for(int i=0; i<List.size(); ++i)
{

valueStr += QString::number( List[i] );
valueStr += QStrFromSrcEnc(",");
}

valueStr.chop(1);
valueStr += QStrFromSrcEnc("}");

然后我将字符串值绑定(bind)到 :val 占位符

关于qt - 将 QList<QVariant> 存储到 Qt 中的 PostgreSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17152047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com