我想通过将 URI 传递给 SQLite 来创建一个共享的内存数据库file:memdb1?mode=memory&cache=shared
。
以下代码看起来很简单,可以完成工作:
#include <iostream>
#include <sqlite3.h>
void main()
{
sqlite3 * db;
int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_URI;
int returnCode = sqlite3_open_v2("file:memdb1?mode=memory&cache=shared", &db, flags, NULL);
if (returnCode == SQLITE_OK)
std::cout << "Success!" << std::endl;
else
std::cout << "Error: " << sqlite3_errmsg(db) << std::endl;
if (db) sqlite3_close(db);
}
然后我像这样编译它:
$ g++ sample.cpp -lsqlite3
这就是我得到的:
$ ./a.out
Error: no such access mode: memory
我已经尝试了许多不同的配置flags
(其中一些包括SQLITE_OPEN_MEMORY
),但我无法让这个简单的程序运行。我已经在 Windows(使用 SQLite 3.7.15 的自定义构建)和 Ubuntu(使用默认apt-get
包,版本 3.7.9)上尝试了它,但没有成功。
有没有人遇到过这个并找到了解决方案?