1
我想通過傳遞URI來創建一個與SQLite共享的內存數據庫,如file:memdb1?mode=memory&cache=shared
。如何讓SQLite 3從URI數據庫處理內存模式?
下面的代碼看起來很簡單,以完成工作:
#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)上嘗試過,但沒有成功。
有沒有人遇到過這一點,並發現了一個解決方案?