刷新sqlite数据库。我试过这段代码......
if(sqlite3_exec(dataBase, "VACUUM;", 0, 0, NULL)==SQLITE_OK)
{ NSLog(@"Vacuumed DataBase");
}
我的确切要求是当我删除一些内容然后在杀死应用程序后立即刷新sqlite ....
我已经使用该代码来刷新SQLITE但是插入后的某些不同位置并不完全是函数。
此功能不会执行。我想刷新我的Sqlite ......
那么我怎么能解决这个问题请提前帮助我,谢谢。,,,
答案 0 :(得分:1)
尝试从"VACUUM;"
声明中删除分号:
if (sqlite3_exec(dataBase, "VACUUM", 0, 0, NULL) == SQLITE_OK) {
NSLog(@"Vacuumed DataBase");
}
我认为这个想法是分号只是在sqlite3命令行客户端中的终结符,需要通知引擎您的语句已完成。使用C API时,不需要终结符,因为sqlite3_exec()
收到完整语句。实际上,在这种情况下分号是错误的。去图。
此外,您应该处理其他SQLITE_XXX代码。
答案 1 :(得分:-1)
您可能想要:
更新数据库以更改或删除数据:使用SQL UPDATE
语句。
检查函数调用:如果代码中的函数未执行,请检查它是否在if语句的执行块内,或者是否完全调用它。
减小SQLite数据库文件的大小:使用VACUUM
语句。
要执行任何SQLite语句,您必须准备它。来自SQLite.org documentation关于sqlite_prepare
:
要执行SQL查询,必须首先使用其中一个例程将其编译为字节码程序。