加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用SQLite从内存中打开数据库?

发布时间:2020-12-12 18:59:14 所属栏目:百科 来源:网络整理
导读:看起来加载SQLite的所有方法都涉及使用字符串从命名文件加载.我想从内存加载SQlite数据库. 数据库已加载到内存中. 解决方法 使用特殊文件名,:memory: sqlite3_open(":memory:",db); 必须在没有定义SQLITE_OMIT_MEMORYDB的情况下编译libsqlite,如SQLite doc
看起来加载SQLite的所有方法都涉及使用字符串从命名文件加载.我想从内存加载SQlite数据库.

数据库已加载到内存中.

解决方法

使用特殊文件名,:memory:

sqlite3_open(":memory:",&db);

必须在没有定义SQLITE_OMIT_MEMORYDB的情况下编译libsqlite,如SQLite documentation所述:

SQLITE_OMIT_MEMORYDB

When this is defined,the library does not respect the special database name ":memory:" (normally used to create an in-memory database). If ":memory:" is passed to sqlite3_open(),sqlite3_open16(),or sqlite3_open_v2(),a file with this name will be opened or created.

但是,如果要读取已经完全加载到内存中的数据库,那将会更有效.您必须实现一个自定义VFS层来操作内存文件并将其注册到您的SQLite上下文中.

看到:

> sqlite3_vfs
> sqlite3_io_methods

我自己没有实现它,所以我无法可靠地判断你是否必须实现整个新的VFS层,或者你可以在默认的一个函数中替换一些函数(后者不太可能).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读