のような 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 を使用) の両方で試しましたが、成功しませんでした。
誰かがこれに遭遇し、解決策を発見しましたか?