C 如何使用SQLite从内存中打开数据库?
似乎所有加载SQLite的方法都涉及使用字符串从命名文件加载。我想从内存中加载SQlite数据库C 如何使用SQLite从内存中打开数据库?,c,sqlite,C,Sqlite,似乎所有加载SQLite的方法都涉及使用字符串从命名文件加载。我想从内存中加载SQlite数据库 数据库已加载到内存中。使用特殊文件名,:内存: sqlite3_open(":memory:", &db); libsqlite必须编译而未定义SQLITE\u OMIT\u MEMORYDB,如下所述: SQLITE\u省略\u记忆db 定义此项时,库不考虑特殊数据库名称”:memory:“(通常用于创建内存内数据库)。如果”:内存:“被传递到sqlite3\u open(),sqlit
数据库已加载到内存中。使用特殊文件名,
:内存:
sqlite3_open(":memory:", &db);
libsqlite
必须编译而未定义SQLITE\u OMIT\u MEMORYDB
,如下所述:
SQLITE\u省略\u记忆db
定义此项时,库不考虑特殊数据库名称”:memory:“
(通常用于创建内存内数据库)。如果”:内存:“
被传递到sqlite3\u open()
,sqlite3\u open16()
,或sqlite3\u open\u v2()
,则将打开或创建具有此名称的文件
但是,如果要读取已完全加载到内存中的数据库,则需要更多的工作。您必须实现一个自定义VFS层来操作内存文件,并将其注册到SQLite上下文中
见:
我自己还没有实现它,因此我无法可靠地判断您是否必须实现整个新的VFS层,或者您可以在默认层中替换一些函数(后者不太可能)。目前有一个memvfs实现
关于如何实施的详细信息,或者这是否超出了本问题的范围?如果有人能填写这些细节,我将不胜感激,因此这里有一个端到端的解决方案。这是公共页面。