SQLite真的是跨平台的吗?

前端之家收集整理的这篇文章主要介绍了SQLite真的是跨平台的吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用sqlite来存储一些数据.主数据库位于NAS(Debian Lenny,2.6.15,armv4l)上,因为NAS运行的脚本每天都会更新数据.典型的“select * from tableX”如下所示:
2010-12-28|20|62.09|25170.0
2010-12-28|21|49.28|23305.7
2010-12-28|22|48.51|22051.1
2010-12-28|23|47.17|21809.9

当我将数据库复制到我的主计算机(Mac OS X)并运行相同的SQL查询时,输出为:

2010-12-28|20|1.08115035175016e-160|25170.0
2010-12-28|21|2.39343503830763e-259|-9.25596535779558e+61
2010-12-28|22|-1.02951149572792e-86|1.90359837597183e+185
2010-12-28|23|-1.10707273937033e-234|-2.35343828462275e-185

第3列和第4列的类型为REAL.有趣的事实:当数字是整数(即它们以“.0”结尾)时,两个数据库之间没有区别.在所有其他情况下,差异是……嗯……令人惊讶?我似乎无法找到一种模式.

如果有人有线索 – 请分享

PS:sqlite3 -version输出
Debian:3.6.21(lenny-backports)
Mac OS X:3.6.12(10.6)

sqlite的 3.4.0版本中,添加了一个编译时标志.
  • Added the sqlITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to support ARM7 processors with goofy endianness.

我在使用Arm920Tid设备和基于x86的VM时遇到了同样的问题. arm设备正在写数据,我试图在x86 VM(或我的Mac)上读取它.

在我的arm文件添加这个编译时标志后,我可以在任一平台上查询数据库时获得合理的值.

作为参考,我使用的是sqlite 3.7.14

猜你在找的Sqlite相关文章