在ios中刷新Sqlite数据库

时间:2013-08-06 11:20:07

标签: iphone ios objective-c

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

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

    }

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

我已经使用该代码来刷新SQLITE但是插入后的某些不同位置并不完全是函数。

此功能不会执行。我想刷新我的Sqlite ......

那么我怎么能解决这个问题请提前帮助我,谢谢。,,,

2 个答案:

答案 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查询,必须首先使用其中一个例程将其编译为字节码程序。