我正在使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。