SQLITE :: Statement :: execute () против SQLITE :: Database :: exe c () - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь создать потокобезопасную базу данных SQL с несколькими подключениями и столкнулся со странной проблемой. В настоящее время используется SQLITE CPP Wrapper для этого проекта https://github.com/SRombauts/SQLiteCpp

Проблема: Ниже приведены два блока кода, которые по сути достигают одного и того же. КОД № 1 работает, но КОД № 2 выдает ошибку ввода-вывода диска SQLITE. Кто-нибудь знает, почему это происходит?

CODE # 1

        //db is SQLite::Database object
        SQLite::Statement change_to_wal(db,"PRAGMA journal_mode=WAL;");
        change_to_wal.executeStep();
        SQLite::Statement query_drop_table(db,"DROP TABLE IF EXISTS Corrections");
        query_drop_table.executeStep();
        std::string sql = "CREATE TABLE Corrections(" 
                         "CURRENT_DATE          TEXT    NOT NULL," 
                         "CURRENT_THRESHOLD     INT     NOT NULL);";
        SQLite::Statement add_columns(db,sql);
        add_columns.executeStep();

CODE # 2:

        //db is SQLite::Database object
        db.exec("PRAGMA journal_mode=WAL;");
        db.exec("DROP TABLE IF EXISTS Corrections");
        std::string sql = "CREATE TABLE Corrections(" 
                         "CURRENT_DATE          TEXT    NOT NULL," 
                         "CURRENT_THRESHOLD     INT     NOT NULL);";
        db.exec(sql);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...