2010-01-28 85 views
3

我试过在不同的操作系统和体系结构之间通过网络传递二进制SQLite数据库 - 它没有工作。SQLite是否具有C API可读写的机器可移植文件格式?

你们都用什么格式?我尝试了一种非法的方法来复制SQLite的shell.c,并用在Mac上成功的hack argc,argv,stdin调用shell_main()。可惜我正在为iPhone开发,它只会在那里失败。

是否每个人都做这样糟糕的事情?

回答

5

这是SQLite的核心功能之一。

稳定的跨平台数据库文件

SQLite的文件格式是跨平台的。写在一台机器上的数据库文件可以复制到具有不同体系结构的不同机器上使用。大端或小端,32位或64位无关紧要。所有机器使用相同的文件格式。此外,开发人员已承诺保持文件格式稳定并向后兼容,因此较新版本的SQLite可以读取和写入较旧的数据库文件。

其他大多数SQL数据库引擎需要您从一个平台迁移到另一个时,经常升级到软件的新版本时,转储和恢复数据库。

http://sqlite.org/different.html

检查的传球数据库的代码。进行逐字节比较以确保传输后它们相等。这绝对应该工作。

Beyond Compare具有良好的二进制文件比较支持。

+1

你完全正确的山姆。我们的测试受到一个简单的事实的影响,一直使用ascii ftp put。切换到二进制解决了一切。 令人讨厌的是,头文件被ascii的ftp文件保存,但是数据/表格结构不那么明显! – gavinbeatty 2010-02-05 13:49:48

相关问题