我有一个内存中的sqlite数据库,我想要转换为一个简单的blob,并且我希望这样做最好不使用任何序列化库。将内存中的sqlite数据库转换为blob/char数组
我也使用sqlite api备份调用将其序列化为磁盘,这也可以用于我的目的吗?
或者,是否有可能简单地将数据库从内存复制到一个字符数组以任何其他方式? (开发使用C++完成)
我有一个内存中的sqlite数据库,我想要转换为一个简单的blob,并且我希望这样做最好不使用任何序列化库。将内存中的sqlite数据库转换为blob/char数组
我也使用sqlite api备份调用将其序列化为磁盘,这也可以用于我的目的吗?
或者,是否有可能简单地将数据库从内存复制到一个字符数组以任何其他方式? (开发使用C++完成)
SQLite不允许您直接访问内存数据库的内部存储。
您可以implement your own VFS为blob创建一个'文件'界面,但只是通过(临时)磁盘文件听起来要容易得多。
谢谢,我现在正在研究vfs演示(http://www.sqlite.org/src/doc/trunk/src/test_demovfs.c),但我真的希望会有一个更简单的(或者至少是直接的)方法。涉及文件确实非常容易,但我宁愿不涉及文件系统。 – incrediblehulk
后续工作:是否可以组合使用多个VFS图层(我在猜测,否)?显然已经有另一层用于另一个目的。 – incrediblehulk
这将是可能的堆栈VFSes,但这不是你想要的(你想在该BLOB中存储该DB * only *)。此外,SQLite的内存数据库根本不使用VFS。 –
所以你有你的内存中的SQLite数据库,并希望将它作为一个blob存储到另一个数据库? YO DAWG,我听到你喜欢......(抱歉无法抗拒)。有一个很好的QT示例http://www.qtcentre.org/threads/30080-Loading-and-saving-in-memory-SQLITE-databases--因为它不依赖于QT函数,所以你应该能够C++只有std :: string和sqlite api的版本。无论如何,看到从sqlite的备份示例?也许超载流操作符来匹配您的需要 – Najzero
好吧,不是说qt的例子做什么备份API?我想要的是将整个数据库转换为一个保存该内存的char数组。基本上memcopy'db分贝。备份API的内部做我想要的,我想,将需要看看。 – incrediblehulk