首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLITE_INTEGER值字节

SQLITE_INTEGER值字节
EN

Stack Overflow用户
提问于 2012-12-12 11:00:08
回答 1查看 1.7K关注 0票数 5

我有一个关于sqlite3中数据类型的问题。

由于SQLITE_INTEGER的值可以存储在1、2、3、4、6或8字节中,这取决于值的大小,如果我只知道SQlite数据库中的一列存储了SQLITE_INTEGER,我如何知道该列中的值是4字节还是6-8字节的整数,或者应该使用sqlite3_column_int()还是sqlite3_column_int64()来获取该值?

在这种情况下,我可以使用sqlite3_column_bytes()吗?但是根据文档,sqlite3_column_bytes()主要用于文本或BLOB。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-12 15:55:50

当SQLite步进记录时,所有整数值都扩展到64位。

sqlite3_column_int()返回该值的低32位,而不检查是否溢出。

当您调用sqlite3_column_bytes()时,SQLite会将该值转换为文本,并返回字符数。

在读取整数值之前,您无法知道它有多大。然后,您可以检查record format documentation中的列表,以获得该值的最小可能格式,但如果您希望确保整数值永远不会被截断为32位,则必须始终使用sqlite3_column_int64(),或者确保从一开始就不会将较大的值写入数据库(如果可能的话)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13832103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档