从 NUMERIC 列中检索最大 'int64_t'/'uint64_t' 值

问题描述 投票:0回答:1

我有一个 PostgreSQL 数据库,我将 int64_t 或 uint64_t 的最大值存储在 NUMERIC 类型的列中(我无法使用 BIGINT 类型,因为 PostgreSQL 中没有 uint64_t 的无符号变体)。

查看Qt文档 — Qt支持的数据库系统的数据类型 — PostgreSQL数据类型,似乎

NUMERIC
映射到
qreal
(=
double
),这显然无法容纳这些不损失精度的值。

有没有办法在不修改驱动程序的情况下将默认的 QVariant 映射重新映射到其他内容?或者是否有其他方法可以检索这些值而不将它们转换为数据库端的字符串?

c++ postgresql qt
1个回答
1
投票

如果将数据库的数值精度策略设置为

QSql::HighPrecision
,则 NUMERIC 字段将以 QString 形式返回。

db.setNumericalPrecisionPolicy(QSql::HighPrecision);
© www.soinside.com 2019 - 2024. All rights reserved.