我正在尝试从内存中加载一个数据库,而不是打开一个.sqlite文件。我已经阅读了C/C++ API参考文档,但我找不到正确的方法。
我试图加载的缓冲区只是在内存中加载的sqlite文件。我只想使用这个缓冲区(一个const char*数组)而不使用文件系统(我本可以将这个缓冲区保存在文件中,然后加载文件,但没有必要)。
首先,我创建了一个内存数据库:
我猜想有一种适当的方法来实现这一点,因为从流或解密数据加载数据库可能很常见...
谢谢。
我试图加载的缓冲区只是在内存中加载的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);
也是同样的结果。我猜想有一种适当的方法来实现这一点,因为从流或解密数据加载数据库可能很常见...
谢谢。