在不同的文件夹中打开/创建Sqlite数据库

时间:2018-03-18 17:34:03

标签: c++ sqlite

我正在尝试在所选目录中创建sqlite数据库,但是不能这样做。每当我尝试使用路径到文件夹创建数据库时,我都会收到错误SQLITE_CANTOPEN

以下代码:

创建DB的功能:

using database = std::unique_ptr<sqlite3, decltype(&sqlite3_close)>;
database open_database(const char* name)
{
    sqlite3* db = nullptr;
    int rc = sqlite3_open(name, &db);

    if (rc != SQLITE_OK) {
        std::string S = (std::string)"Unable to open database '" + name + "': " +
            sqlite3_errmsg(db);
        sqlite3_close(db);
        throw std::exception(S.c_str());
    }
    return database{ db, sqlite3_close };

}

以下代码有效:

open_database("file:testMY_db.sqlite?cache=shared");
open_database("testMY_db.sqlite");

下面的代码抛出异常:SQLITE_CANTOPEN。

open_database("file:///C:/Users/Андрей/Desktop/test_db.sqlite?cache=shared");
open_database("file:///C:/Users/Андрей/Desktop/test_db.sqlite");
open_database("file:/C:/Users/Андрей/Desktop/test_db.sqlite?cmode=rw");

如果有人遇到这样的问题或者知道如何解决问题,请帮助我。

0 个答案:

没有答案