SQLite是否具有C API可以读/写的机器可移植文件格式?

gav*_*tty 3 sqlite portability file-format

我尝试在不同操作系统和体系结构之间通过网络传递二进制SQLite DB - 它不起作用.

你们用的是什么格式?我尝试过复制SQLite的shell.c并使用hack up argc,argv,stdin在Mac上成功调用shell_main().可惜我正在为iPhone开发,它只在那里失败.

每个人都做这么可怕的事吗?

Sam*_*eff 6

这是SQLite的核心功能之一.

稳定的跨平台数据库文件

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

大多数其他SQL数据库引擎要求您在从一个平台移动到另一个平台时转储和恢复数据库,并且通常在升级到较新版本的软件时.

http://sqlite.org/different.html

检查传递数据库的代码.进行逐字节比较以确保它们在传输后相等.这肯定应该工作.

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

  • 你说得很对,萨姆。我们的测试因一个简单的事实而陷入困境,即一路上使用了 ascii ftp put。切换到二进制解决了一切。令人烦恼的是,标头是由 ascii ftp put 保留的,但数据/表结构则不然! (2认同)