Есть ли в SQLite формат переносимого на компьютере файла, который C API может читать / записывать? - PullRequest
3 голосов
/ 28 января 2010

Я пытался передавать двоичные БД SQLite по сети между различными ОС и архитектурами - это не сработало.

Какой формат вы все используете? Я попытался безобразно взломать SQLite shell.c и вызвать shell_main () со взломанным argc, argv, stdin с успехом на Mac. Жаль, что я разрабатываю для iPhone, и он терпит неудачу только там.

Все делают такие ужасные вещи?

1 Ответ

6 голосов
/ 02 февраля 2010

Это одна из основных функций SQLite.

Файл стабильной кроссплатформенной базы данных

Формат файла SQLite является кроссплатформенным. Файл базы данных, написанный на одном компьютере, можно скопировать и использовать на другом компьютере с другой архитектурой. Big-endian или little-endian, 32-разрядные или 64-разрядные значения не имеют. Все машины используют один и тот же формат файла. Более того, разработчики обязались поддерживать стабильный и обратно совместимый формат файлов, чтобы новые версии SQLite могли читать и записывать старые файлы базы данных.

Большинство других механизмов баз данных SQL требуют выгрузки и восстановления базы данных при переходе с одной платформы на другую и часто при обновлении до более новой версии программного обеспечения.

http://sqlite.org/different.html

Проверьте код, который передает базы данных. Выполните побайтовое сравнение, чтобы убедиться, что они равны после передачи. Это определенно должно работать.

Beyond Compare имеет хорошую поддержку сравнения двоичных файлов.

...