2010-12-22 42 views
0

我想完全清理我的iPhone应用程序中SQLite3表中的所有内容。我的MySQL经验告诉我应该使用TRUNCATE。但似乎SQLite3不支持TRUNCATE(至少当我使用句子TRUNCATE my_table_Name准备语句时出现错误)。所以我转向删除。两个问题:1)将DELETE FROM彻底清理我的表吗? 2)我试了下面的代码,它的工作。但我高度怀疑其中有不必要甚至错误的代码。任何人都可以帮我看看吗?在iPhone上的SQLite3中截断表?

在此先感谢。

-(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); 
} 

回答

1

我觉得

如果(代码== SQLITE_ROW){// 奈何这里... }

这段代码应该是像

if(code == SQLITE_DONE){ //此处不做任何事...... }

如果你想得到任何消息,那么你可以从这里返回YES,否则返回NO(如果你将返回类型从void改为BOOL)。这可以帮助你显示消息。

+0

谢谢Ishu,我会尽力的。 – 2010-12-22 06:37:27