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