Возможно ли, чтобы 32-разрядный процесс и 64-разрядный процесс читали и записывали в один и тот же файл базы данных Sqlite?

#windows #sqlite

#Windows #sqlite

Вопрос:

У нас было два 32-разрядных приложения Windows, которые одновременно считывали и записывали данные в один и тот же файл базы данных для обмена информацией. До сих пор мы использовали для этого базу данных MS-Access. Это привело к проблемам, когда мы обновили одно из двух приложений до 64-разрядного, но не обновили другое: у нас возникли проблемы с поврежденной памятью. В конце концов мы решили эту проблему, попросив 64-разрядное приложение взаимодействовать с новым 32-разрядным процессом, который выполнял для него операции CRUD. Теперь мы предполагаем переход на базу данных Sqlite. Как будет вести себя эта база данных, когда 32-разрядный и 64-разрядный процессы будут выполнять операции чтения и записи в нее? Вероятно, нам снова придется использовать описанное выше решение?

Ответ №1:

Формат файла sqlite не зависит от размера слова, с которым была скомпилирована версия библиотеки, которая его создала. Вы можете свободно использовать один и тот же файл базы данных с 32-разрядными и 64-разрядными приложениями.

Комментарии:

1. это облегчение, но действительно ли файл поддерживает одновременное использование 64- и 32-разрядным процессами? Будет ли Windows это поддерживать? Как указано выше, мы получили неприятные ошибки, когда попытались сделать это с файлом MS-Access (2000).

2. Это должно быть, хотя Windows может странно относиться к файлам.