【发布时间】:2011-05-30 01:50:43
【问题描述】:
我正在尝试从内存中加载数据库,而不是打开 .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);,结果相同
我想有一种适当的方法可以实现这一点,因为从流或解密数据中加载数据库可能很常见......
谢谢。
【问题讨论】:
标签: c++ database sqlite stream buffer