SQLITE_INTEGER值字节

SQLITE_INTEGER值字节,第1张

概述我对sqlite3中的数据类型有疑问. 由于SQLITE_INTEGER的值可以存储为1,2,3,4,6或8个字节,具体取决于值的大小,如果我只知道SQlite数据库中的列存储SQLITE_INTEGER,我怎么能知道一个值这列是4个字节还是6-8个字节的整数,或者应该用哪个来获取值,sqlite3_column_int()或sqlite3_column_int64()? 在这种情况下我可以使用s 我对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()主要用于TEXT或BLOB.

谢谢!

解决方法 当sqlite进入记录时,所有整数值都扩展为64位.
sqlite3_column_int()返回该值的低32位而不检查溢出.

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

在读取之前,您无法知道整数值有多大.
之后,您可以检查record format documentation中的列表以获取该值的最小可能格式,但是如果要确保整数值永远不会截断为32位,则必须始终使用sqlite3_column_int64(),或者确保使用大值从来没有写过DB(如果可能的话).

总结

以上是内存溢出为你收集整理的SQLITE_INTEGER值字节全部内容,希望文章能够帮你解决SQLITE_INTEGER值字节所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1158408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存