Database 如何让SQLite 3处理URI数据库中的内存模式?

Database 如何让SQLite 3处理URI数据库中的内存模式?,database,memory,sqlite,uri,in-memory-database,Database,Memory,Sqlite,Uri,In Memory Database,我想通过像file:memdb1?mode=memory&cache=shared那样传递URI,用SQLite创建一个共享的内存中数据库 以下代码看起来足够简单,可以完成任务: #include <iostream> #include <sqlite3.h> void main() { sqlite3 * db; int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_URI;

我想通过像
file:memdb1?mode=memory&cache=shared
那样传递URI,用SQLite创建一个共享的内存中数据库

以下代码看起来足够简单,可以完成任务:

#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);
}
这就是我得到的:

$ ./a.out
Error: no such access mode: memory
我尝试了许多不同的
标志配置(一些包括
SQLITE\u OPEN\u MEMORY
),但我无法运行这个简单的程序。我在Windows(使用定制的SQLite 3.7.15版本)和Ubuntu(使用默认的
apt get
软件包,版本3.7.9)上都尝试过,但都没有成功


有人遇到过这种情况并找到了解决方案吗?

结果是我使用了错误的SQLite版本。在版本3.7.13之前,SQLite不支持共享缓存(请参阅)

$ ./a.out
Error: no such access mode: memory