Чтение заблокированной базы данных SQLite в память

#sqlite

#sqlite

Вопрос:

Я работаю над проектом, который предъявляет некоторые довольно специфические требования, и сталкиваюсь с проблемой с одним из них. У нас есть заблокированная база данных SQLite. Мы не можем разблокировать эту базу данных, но нам нужно прочитать ее (но не записать в нее), и мы не можем создавать какие-либо новые файлы в файловой системе, которые содержат данные из этой базы данных. Было предложено прочитать файл в оперативную память, а затем получить к нему доступ оттуда. Я пытался найти способ сделать это, но этот проект находится на Windows, поэтому все идет не так гладко, как могло бы быть в противном случае.

То, что я пытался сделать, это прочитать файл в переменную bash, а затем передать эту переменную в sqlite в качестве базы данных. Это работает не особенно хорошо.

Я установил win-bash, но когда я делаю «sqlite3.exe <(cat <<<«$ database»)» Я получаю «синтаксическую ошибку около неожиданного токена `<(‘» Я проверил, и win-bash выглядит так, как будто он основан на более старой версии bash. Я попробовал zsh, но там написано «не похоже, что ваша система поддерживает FIFOs».. Я установил cygwin, который в любом случае не был бы хорошим решением (как только я выясню, как это сделать, мне нужно передать его нашим разработчикам Qt, чтобы они могли внедрить его в приложение Qt), но я просто пытался выполнить «проверку концепции» — это тоже не сработало. Sqlite открылся просто отлично, но когда я запустил «.tables», там было написано «Ошибка: не удается открыть базу данных «/ dev / fd / 63″: не удается открыть файл базы данных» Итак, похоже, я запускаю неправильное дерево, и мне нужно придумать какой-то другой способ сделать это.

Я предполагаю, что мои вопросы, во-первых, можно ли прочитать базу данных sqlite в переменной, как я пытался, или я иду по совершенно неправильному пути там? Второе — если это невозможно сделать таким образом, есть ли какой-то способ, который я упускаю из виду, который мог бы сделать это возможным?

Спасибо!