1

刷新 sqlite 数据库。我试过这段代码...

 if(sqlite3_exec(dataBase, "VACUUM;", 0, 0, NULL)==SQLITE_OK) 
    {      NSLog(@"Vacuumed DataBase");    

    }

我的确切要求是当我删除一些内容然后立即刷新该sqlite,而不是在杀死应用程序之后......

我已经使用该代码刷新 SQLITE 但插入后的一些不同位置不完全意味着功能失效。

这个函数不会执行。我想刷新我的 Sqlite...

那么我该如何解决这个问题,请提前帮我解决这个问题,.,,,

4

2 回答 2

1

尝试从您的"VACUUM;"语句中删除分号:

if (sqlite3_exec(dataBase, "VACUUM", 0, 0, NULL) == SQLITE_OK) {
   NSLog(@"Vacuumed DataBase");
}

我认为这个想法是分号仅在 sqlite3 命令行客户端中是终止符,需要通知引擎您的语句已完成。使用 C API 时,不需要终止符,因为完整的语句由sqlite3_exec(). 实际上,在这种情况下,分号是错误的。去搞清楚。

此外,您应该处理其他 SQLITE_XXX 代码。

于 2013-08-06T11:48:42.220 回答
-1

你可能想要:

  • 更新数据库以更改或删除数据:使用 SQLUPDATE语句。

  • 检查函数调用:如果代码中的函数未执行,请检查它是否在 if 语句的执行块内,或者是否调用了它。

  • 减小 SQLite 数据库文件的大小:使用VACUUM语句。

要执行任何 SQLite 语句,您必须准备它。从 SQLite.org文档中关于sqlite_prepare

要执行 SQL 查询,必须首先使用这些例程之一将其编译成字节码程序。

于 2013-08-06T11:30:14.043 回答