我怎样才能执行“VACUUM”命令在C++中使用sqlite3库
问题描述:
我想在C++中使用sqlite3库C++编程执行“VACUUM”命令。请参阅参考:https://sqlite.org/capi3ref.html我怎样才能执行“VACUUM”命令在C++中使用sqlite3库
有人可以给出一个如何做到这一点的代码片段?我试着调用它,但它给出了一个例外:
此代码位于我的SqliteDb.cpp辅助类中。
void SqliteDb::executeSql(const string& sqlStatement) {
char* errMsg = NULL;
sqlite3_exec(db, sqlStatement.c_str(), NULL, NULL, &errMsg);
if (errMsg != NULL) {
string reason = string("Error in") + sqlStatement + " " + errMsg;
sqlite3_free(errMsg);
__throw_sqlitedb(reason);
}
}
在我的主类,我所做的:
try{
db = new SqliteDb(filepath);
db->executeSql("VACUUM;");
} catch (std::exception e) {
printf("EXCEPTION occured %s", e.what());
}
输出是发生
异常std ::例外
的SqliteDb.cpp是一个测试类并且适用于使用此类的其他组件。
答
PRAGMA auto_vacuum = FULL;
然后你就不用担心它了。
考虑添加[mcve],并包含错误! – Tas
添加了一些示例代码。 –