gpt4 book ai didi

c++ - 如何使用 C API 从缓冲区加载 SQLITE 数据库?

转载 作者:搜寻专家 更新时间:2023-10-30 20:45:10 26 4
gpt4 key购买 nike

我试图从内存中加载数据库而不是打开 .sqlite 文件。我已阅读 C/C++ API 引用,但找不到合适的方法。

我试图加载的缓冲区只是一个加载到内存中的 sqlite 文件。我只想在不使用文件系统的情况下使用这个缓冲区(一个 const char* 数组)(我本可以将这个缓冲区保存在一个文件中,然后加载该文件,但是不行)。

首先,我创建一个内存数据库:
mErrorCode = sqlite3_open_v2(":memory:", &mSqlDatabase, lMode, NULL);

这会返回 SQLITE_OK,然后我尝试将缓冲区用作语句并调用 preparev2(MyDB, MyBufferData, MyBufferLength, MyStatement, NULL) 但它并不是真正的语句,它会返回错误.如果我直接调用 exec(MyDB, MyBufferData, NULL, NULL, NULL);

,结果相同

我想有一种合适的方法可以实现这一点,因为从流或解密数据加载数据库可能很常见......

谢谢。

最佳答案

我认为正确的方法是创建一个 SQLite VFS layer在你的缓冲区周围,如 this 中所述线。一个可能的/部分解决方案,spmemvfs , 提到 here ,虽然我从未尝试过。

如果您的数据库不需要并发,创建您自己的 VFS 实现应该非常简单。

关于c++ - 如何使用 C API 从缓冲区加载 SQLITE 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com