当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《如何使用SQLite从内存中打开数据库?》经验,为你挑选了1个好方法。

看起来加载SQLite的所有方法都涉及使用字符串从命名文件加载.我想从内存加载SQlite数据库.

数据库已加载到内存中.



1> Alex B..:

使用特殊文件名, :memory:

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

libsqlite必须在没有 SQLITE_OMIT_MEMORYDB定义的情况下编译,如SQLite文档中所指出:

SQLITE_OMIT_MEMORYDB

定义此选项后,库不会考虑特殊数据库名称":memory:"(通常用于创建内存数据库).如果":memory:"传递给sqlite3_open(),, sqlite3_open16()sqlite3_open_v2()将打开或创建具有此名称的文件.

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

看到:

sqlite3_vfs

sqlite3_io_methods

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

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有