sqlite - 带有c绑定的sqlite中的无符号64位值
问题描述
我正在尝试通过 c 绑定在 sqlite 中存储和检索无符号的 64 位整数值。
例如 18446744073709551615(小于 2 的 64 次方) 我似乎已经设法将这个值存储在数据库中。当我在命令行上运行 sqlite3 并选择列时,我得到 1.84467440737096e+19
我遇到的问题是使用 c 绑定检索值。我打电话给 sqlite3_column_int64。此函数返回一个带符号的 sqlite3_int64 值。当我调用该函数时,它返回 9223372036854775807,这是有符号 64 位整数的最大大小(小于 2 的 63 次方)似乎没有 sqlite3_column_uint64 函数。
有任何想法吗?
解决方案
无符号 64 位整数不能直接由SQLite 的任何数据类型表示。
您必须将它们存储为文本或 blob。在这两种情况下,数据库都不能对它们进行计算。
推荐阅读
- php - 按字母顺序对带有 JSON 数据的 HTML 表进行排序
- json - NiFi,Jolt 的操作“子字符串”不起作用
- javascript - 如何在java脚本中从对象数组形成数组数组
- r - install.package("ggiraph") 时出错:AWS-Cloud Linux 上的“没有用于调用 'regex_replace”/RStudio 的匹配函数
- ffmpeg - 对角分割以显示同一视频帧的两个位置。横向输入,纵向输出
- python - 如何为每个索引值添加差异行?
- python - 写入和读取字节元组
- angular - Angular MsalGuard for Authentication 和自己写的 Guard for Authorize,需要先等待认证
- kubernetes - nginx-ingress 控制器的 nginx.conf 文件未使用新的入口路径进行更新
- python - AsyncSSH SFTP 示例似乎是按顺序而不是异步下载文件