我想彻底清理iPhone应用程序中SQLite3表中的所有内容。我的MySQL经验告诉我,我应该使用TRUNCATE。但似乎SQLite3不支持TRUNCATE(至少我在使用句子 TRUNCATE my_table_Name 时准备语句时出错。)
所以我转向 DELETE FROM 。两个问题:1)DELETE FROM彻底清理我的桌子吗? 2)我尝试了以下代码并且它有效。但我高度怀疑其中有不必要甚至错误的代码。任何人都可以帮我看一下吗?
提前致谢。
狄
-(void)deleteAllUser {
NSString *ns_sql = [NSString stringWithFormat:@"DELETE FROM %@", [Config USER_TABLE_NAME]];
const char *sql = [ns_sql cStringUsingEncoding:NSUTF8StringEncoding];
sqlite3_stmt *statement = nil;
sqlite3* db = ...; //get the database instance
if(sqlite3_prepare_v2(db, sql, -1, &statement, nil) != SQLITE_OK) {
return;
}
//Without this line, table is not modified
int code = sqlite3_step(statement);
if (code == SQLITE_ROW) {
//Do nothing here...
}
sqlite3_finalize(statement);
}
答案 0 :(得分:1)
我认为
if(code == SQLITE_ROW){ //在这里什么都不做 }
此代码应该像
if(code == SQLITE_DONE){ //在这里什么都不做 }
如果你想获得任何消息,那么你可以从这里返回YES,而从else返回NO(如果你从void中将返回类型改为BOOL)。这可以帮助你显示消息。